Clean Malaysian phone numbers to +60 and build wa.me links

Paste messy numbers from WhatsApp, Excel or forms. Get a deduplicated list in E.164 (+60) with wa.me links, plus a report of every number dropped and why.

🔒 100% client-side · zero server upload

What was removed

Malaysian rules & edge cases

Malaysia numbering plan. Mobile numbers start with 01x (Maxis 012, Celcom 013/019, Digi 016, U Mobile 018): they are 10 digits (012-3456789), except 011 numbers which are 11 digits (011-23456789). Landlines show the state code in the area code: 03 is Kuala Lumpur / Selangor (10 digits, 03-1234 5678), 04 the north, 05 Perak, 06 the south, 07 Johor, 08 Sabah and Sarawak, 09 the east coast — most other landlines are 9 digits (06-1234567).

Input formNormalised toExample
Local mobile 012-3456789+60123456789012 becomes +60 12…
011 mobile (11 digits)+601123456789011-23456789 becomes +601123456789
International +60 12-345 6789+60123456789trunk 0 removed after +60
60 or 0060 without plus+60…0060 12-345 6789 becomes +60123456789
Landline 03-12345678+60312345678kept unless Drop landlines is on

Numbers are validated with libphonenumber-js (Google numbering library) using Malaysia as the default region. Non-MY numbers, impossible lengths and accidental duplicates are reported with the original line so you can check them before importing into a CRM.

Before and after

Before

Ali: 012-3456789
Siti +60 12-345 6789
Pejabat: 03-12345678
019-2345678
019-2345678

After

+60123456789
https://wa.me/60123456789
+60312345678
https://wa.me/60312345678
+60192345678
https://wa.me/60192345678

How it works

  1. Paste numbers into the INPUT box — one per line, or paste any text and numbers will be extracted — or press Load sample data.
  2. Choose whether to drop landlines (03, 06, 07…) and whether to include wa.me links, then press Run.
  3. Copy the clean +60 list or the wa.me links, and check the report below for every invalid, duplicate or non-MY number that was dropped.

FAQ

Does this upload my phone list to a server?

No. Everything runs in your browser with the libphonenumber-js library bundled into the page. You can open your browser Network tab and confirm that pressing Run sends zero requests — important when the list holds customer numbers.

What is the difference between 012 and 011 numbers?

Both are Malaysian mobile ranges. Most 01x numbers are 10 digits, but 011 numbers (e.g. 011-23456789) are 11 digits. The tool handles both; a 10-digit-only rule would wrongly reject 011 numbers.

Why is my 03 number dropped when Drop landlines is on?

03 is the Kuala Lumpur / Selangor landline area code, not a mobile range. With the option on, numbers whose national part does not start with 1 are treated as landlines (03, 04, 05, 06, 07, 08, 09) and reported as removed with reason landline. Turn it off to keep them.

What does E.164 (+60) mean for WhatsApp?

E.164 is the international format: country code 60 plus the national number without the leading 0, e.g. +601123456789. wa.me links use the same digits without the plus, e.g. https://wa.me/60123456789, so they open a WhatsApp chat with that number.

Can it clean numbers pasted from Excel or WhatsApp?

Yes. The tool extracts phone-like sequences from any text, so Call Ali: 012-3456789 and Excel cells with dashes or spaces are handled. Line breaks from Excel and WhatsApp (CRLF) are normalised automatically.