Phone Number Formatter
Paste a number, pick a region, and read every canonical form plus number type and an honest valid-or-possible verdict — parsed entirely on this device.
Waiting for a number
—
Read as —
- —
| E.164 | — | |
|---|---|---|
| International (E.123) | — | |
| National | — | |
| RFC 3966 tel: URI | — |
| Region | — |
|---|---|
| Country calling code | — |
| National significant number | — |
| Extension | — |
| Number type | — |
/ focuses the number field · Ctrl ↵ copies E.164
Do it offline:$
How to use it
- Paste a number in whatever spelling you have — +44 20 7946 0958, (415) 555-2671, or a tel: URI.
- If it carries no + and no tel: country code, pick the region it should be read in; otherwise leave the picker on international.
- Read the verdict first, then the four canonical forms, then the detail rows: region, calling code, national significant number, extension and type.
- Copy any one form with the control beside it, or share the permalink — the number rides in the link fragment and is never kept on this device.
Paste a phone number — dialled, formatted, or written as a tel: URI — and read it back in every canonical form: E.164, international, national and RFC 3966. Beside them sit the region, the country calling code, the national significant number, any extension and the number type, plus a verdict that separates a length the numbering plan permits from a pattern it actually assigns. Parsing happens in this tab, against bundled metadata.
Examples
415-555-2671input kind dialled
verdict valid
E.164 +14155552671
international +1 415 555 2671
national (415) 555-2671
RFC 3966 tel:+14155552671
region US
calling code +1
national number 4155552671
extension —
type FIXED_LINE_OR_MOBILENothing in those digits names a country, so the region picker supplies the plan. Change it and the same digits read differently.
+442079460958input kind dialled
verdict valid
E.164 +442079460958
international +44 20 7946 0958
national 020 7946 0958
RFC 3966 tel:+442079460958
region GB
calling code +44
national number 2079460958
extension —
type FIXED_LINEA leading + settles the plan on its own. The national row gains the trunk 0 that London dialling uses; the significant-number row shows the digits without it.
+19991234567input kind dialled
verdict possible, not valid
E.164 +19991234567
international +1 999 123 4567
national (999) 123-4567
RFC 3966 tel:+19991234567
region —
calling code +1
national number 9991234567
extension —
type —
note This number parses, but it matches no pattern in its numbering plan, so it is not a valid number for that plan. Every field below is still reported as parsed.Ten digits behind +1 is a permitted length, so it is possible; no plan under that calling code assigns 999, so it is not valid. The empty region and type rows are the evidence.
tel:+1-415-555-2671;ext=123input kind tel: URI
verdict valid
E.164 +14155552671
international +1 415 555 2671 ext. 123
national (415) 555-2671 ext. 123
RFC 3966 tel:+14155552671;ext=123
region US
calling code +1
national number 4155552671
extension 123
type FIXED_LINE_OR_MOBILEA tel: URI goes in and a normalized one comes out, hyphens dropped and the extension kept.
+12015550123input kind dialled
verdict valid
E.164 +12015550123
international +1 201 555 0123
national (201) 555-0123
RFC 3966 tel:+12015550123
region US
calling code +1
national number 2015550123
extension —
type FIXED_LINE_OR_MOBILEThe bundled example number for the United States — what the Load example control fills in. None is ever invented.
+23412710000input kind dialled
verdict not possible
E.164 +23412710000
international +234 12710000
national 12710000
RFC 3966 tel:+23412710000
region NG
calling code +234
national number 12710000
extension —
type —
note This number is shorter than any length its numbering plan allows. Check for missing digits, or choose the region the number should be read in.
note This number parses, but it matches no pattern in its numbering plan, so it is not a valid number for that plan. Every field below is still reported as parsed.Eight national digits was a normal Lagos landline before the plan lengthened. Every extracted row still renders, so you can see what was read.
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
Possible and valid answer two different questions
Possible asks only whether the digit count is one the numbering plan allows. Valid asks whether those digits also match a range the plan assigns. Both are reported: a number can clear the first test and fail the second, and then its region and type stay unknown.
The plan data is a dated snapshot
Verdicts come from the numbering-plan metadata bundled in libphonenumber-js 1.13.11, printed here beside the last-reviewed date — the only provenance this page can honestly claim. The metadata file has a version field of its own, but it counts the format, not a release, so it is never shown.
Calling code 1 covers more than twenty regions
The North American Numbering Plan shares +1 across the United States, Canada and many Caribbean territories, so the region row names whichever plan claims the area code — not where the handset is. It is a numbering fact, never a location.
Some calling codes have no country
+800 universal freephone, +882 and +883 belong to networks rather than places, so the region row stays empty instead of guessing. The type row can still fill in: +883 510 012 345 678 is VOIP and valid.
Extensions survive every form that has room
(415) 555-2671 x4 keeps its extension through three of the four outputs — ext. 4 in the international and national spellings, ;ext=4 in the RFC 3966 URI. E.164 defines no place to put one, so that row alone drops it.
Past fifteen digits, the refusal depends on the plan
E.164 caps a number at fifteen digits, calling code included, but a length reason comes only where the plan declares an upper bound. +49 9999 9999999999 runs to sixteen and Germany's entry names no ceiling, so no reason is given — the verdict is still an honest not valid. France and the NANP do declare one.
Letters and short codes are not numbers here
Vanity spellings are never mapped to digits: 1-800-FLOWERS is read as far as its digits go, then judged on what is left — far too short. Emergency short codes such as 112 are not plan numbers either, and come back not possible.
Common errors
This number carries no country calling code — it has no leading + and no tel: URI country code, so which plan it belongs to is ambiguous. Choose a region, or write it in + form.- Bare national digits belong to no plan in particular: 2079460958 is a London landline in Britain and nothing elsewhere.
This number is shorter than any length its numbering plan allows. Check for missing digits, or choose the region the number should be read in.- Usually a truncated paste, or a number read under the wrong plan. Whatever did parse is still shown.
This input does not read as a phone number — no dialable digit sequence was found in it. Letter (vanity) spellings are not mapped to digits here, so enter the number in digits.- Nothing in the text worked as a dialable sequence — prose and all-letters vanity strings both land here.
That input is longer than the 256-character limit for this tool. Paste one phone number rather than a list.- One number per run: the field caps at 256 characters, and longer text is refused here without being parsed.
FAQ
What is the difference between a possible number and a valid one?
Possible means the digit count fits the numbering plan. Valid means the digits also match a pattern the plan assigns to a real range. +1 999 123 4567 is possible and not valid: ten digits is a fine length behind +1, but no plan under that code hands out 999.
Does a valid verdict mean the line is in service?
No. It means the number matches its numbering plan as the bundled metadata describes it. Whether anyone answers, who the carrier is, and whether the number was ported are all live-network questions this page cannot ask and does not pretend to.
Why print a tel: URI at all?
RFC 3966 is the form a link or a contact record wants: tel: followed by the number in global form, with an extension attached as ;ext=. It is what a click-to-call link should hold.
Keyboard shortcuts
- /
- Focus the number field.
- ⌘/Ctrl + Enter
- Copy the E.164 form.