Phone Number Parser

Format a phone number into E.164 and more.

Runs locally in your browser Report an issue
Result

Paste a phone number to format it

Enter a number and pick a default country. See the E.164, international, national, and RFC 3966 forms plus the detected country — a pragmatic formatter for common countries, computed in your browser.

Runs entirely in your browser

Format a phone number locally

Paste a phone number and choose the country to assume when the number has no international prefix. The tool strips spaces, dashes, and brackets, honours a leading + or an international 00 prefix, and infers the country calling code from a built-in map of about 40 common countries. It then produces the four forms you usually need: E.164 (+, the canonical storage form), a spaced international form, a national form, and an RFC 3966 tel: URI you can drop straight into a link. Everything runs in your browser, so the number is never uploaded. This is a pragmatic formatter and sanity-checker for common countries — it does not carry the full numbering-plan metadata of a library like libphonenumber, so treat a pass as "well-formed", not "guaranteed dialable".

Common questions

Is this libphonenumber?

No, and it does not try to be. libphonenumber ships megabytes of per-country numbering-plan metadata to validate exact lengths and formats for every region. This is a small, dependency-free tool that handles the common cases: strip formatting, resolve the calling code for about 40 common countries, and emit the standard output forms. It is a convenience formatter, not an authoritative validator.

What is the default country for?

When a number has no + and no 00 international prefix, there is no way to know its country from the digits alone. The default country tells the tool which calling code to assume so it can still build the E.164 and other forms. If the number already starts with + or 00, the default is ignored and the country is read from the number.

What do the four output forms mean?

E.164 is the canonical +<countrycode><national> form with no spaces, best for storing in a database. International is the same with readable spacing. National is just the local part, grouped for reading. RFC 3966 is the tel:+... URI form used in HTML links and vCards.

Does it handle a leading 0 in national numbers?

Yes. When parsing a number as national (no international prefix), a single leading trunk 0 — common in the UK, Germany, and many other countries — is dropped before the calling code is prepended, so +44 20 … is produced from 020 ….

Is my phone number uploaded anywhere?

No. Parsing and formatting happen entirely in your browser with JavaScript. The number is never sent to a server, so it keeps working offline once the page has loaded.