Skip to content
AI Dialer

Free tool

Phone number formatter and E.164 converter

Paste a phone number in any shape (with spaces, brackets, a leading 0, or a 00 prefix) and get it back in clean international format, with the country identified and the length checked.

  • No sign-up
  • Runs in your browser
  • Nothing is sent to a server

Reviewed by Sujan ThapaliyaLast updated

Spaces, dashes, brackets, a leading 0, or a leading 00 are all fine.

Paste a number to convert it

You get E.164, the national format, the country it belongs to, and a length check, all computed in your browser. Nothing is sent to a server.

How do you convert a phone number to international format?

Take the national number, remove any leading trunk prefix (the 0 in most countries), prepend the country calling code, and put a + in front. Strip every space, dash, and bracket. A London number written 020 7946 0123 becomes +442079460123. That is E.164, and it is the only phone number format that is unambiguous anywhere in the world.
The conversion this tool performs, drawn out: a nationally formatted number with its trunk prefix and spacing on the left, and the same number in E.164 form on the right, with the prefix removed, the country code prepended, and all punctuation stripped. E.164 allows at most fifteen digits after the plus.
Every tool here reads and writes the same structure: country code, national destination code, subscriber number.

Step by step

How to use the number formatter

  1. 1

    Paste the number as it was written

    Spaces, dashes, brackets, and a leading trunk zero are all fine. Being permissive at input is the point; rejecting a customer for typing their own number normally is a far more expensive error than storing one odd row.
  2. 2

    Pick the country it belongs to

    A national number is ambiguous without one. The country supplies the calling code and tells the formatter which trunk prefix to strip.
  3. 3

    Copy the E.164 result

    Store that form, not the display form. Formatting for humans is something to do at render time; storing the display format is how a database ends up with one person recorded four different ways.

How it works

What the formatter is actually doing

Three steps, in order:

  1. Find the country. If the input starts with + or 00, the longest matching country calling code is taken from the front. Otherwise the country you selected is used, because a bare string of digits genuinely is ambiguous: the same ten digits can be valid in several countries at once.
  2. Strip the trunk prefix.If the remaining number starts with that country’s national prefix, it is removed. This is the step almost every hand-rolled implementation gets wrong, and it is why so many international calls fail to connect.
  3. Check the length. The digit count is compared against the documented pattern for that country. A mismatch is a warning, not a rejection: several countries have genuinely variable-length numbers, Germany most notably.

For production validation, be equally permissive on input and equally strict on storage: accept whatever the customer types, normalise it to E.164, and store that. Rejecting a real customer because they wrote their own number the way they always write it is a far more expensive mistake than storing one odd row.

Frequently asked questions

What is E.164 format?
E.164 is the international standard for phone numbers: a leading plus sign, the country calling code, then the national number, with no spaces or punctuation and no more than 15 digits total. +14155550123 is E.164; (415) 555-0123 is not.
Why do I need to remove the leading 0?
In most of the world that 0 is a national trunk prefix: it tells the domestic network you are dialing long distance inside the country. It is not part of the number, so it is dropped in international format. Italy is the well-known exception: its landline 0 genuinely is part of the number.
Does this tool send my numbers anywhere?
No. All parsing happens in your browser using JavaScript that ships with the page. Nothing is transmitted, logged, or stored, which matters, because people paste real customer numbers into tools like this one.
Can it tell me if a number is real?
No, and no format tool can. It checks shape: country code, digit count, prefix rules. Whether there is a live subscriber behind the number requires a carrier lookup, which is a different kind of query entirely.
How should I store phone numbers in a database?
As E.164 strings, always. Never as integers: leading zeros and the plus sign are lost, and no phone number is ever used arithmetically. Store one canonical value and format for display at render time; that is what makes deduplication actually work.

Sources

  1. ITU-T Recommendation E.164 — The international public telecommunication numbering planInternational Telecommunication UnionThe international number format, the 15-digit maximum, and how country codes and national numbers compose.
  2. ITU-T International Numbering ResourcesInternational Telecommunication UnionThe assignment of country calling codes and the published national numbering plans they belong to.

Import a whole list instead

Every number you import is normalised to E.164 automatically, matched to its country, and screened against your do-not-call and suppression lists before a single call is placed.

  • No subscription
  • Numbers in 100+ countries
  • Compliance built in