Phone parser and formatter

Parse, validate, and format phone numbers

Choose a default country code, paste a phone number, and instantly get formats like E.164 and RFC3966 — all in your browser

Last updated: March 2, 2026
Frank Zhao - Creator
CreatorFrank Zhao

Introduction / overview

The Phone Parser and Formatter helps you take a raw phone number and turn it into standard representations such as international format, national format, E.164, and RFC3966. It also tells you whether the number is valid/possible and what kind of number it appears to be (mobile, fixed line, toll-free, etc.).

Everything runs locally in your browser. No phone numbers are sent to a server.

If you work with contact lists, signup forms, SMS delivery, or CRM imports, formatting numbers consistently is a huge quality-of-life improvement. For example, storing numbers in E.164 makes deduplication and integrations much easier.

Related utilities you might also like: URL parser for troubleshooting callback URLs, and JWT parser when you’re debugging authentication flows.

How to use (quick start)

  1. Pick a Default country code (this is used when the number doesn’t start with a leading ++).
  2. Paste your phone number into the input field.
  3. Read the results table, and click the copy icon to copy formats like E.164.

Example 1 (building E.164)

Suppose the default country is China and the national number is 13800138000. E.164 is the “+country code + national number” representation.

E.164\text{E.164}==+8613800138000+86\,13800138000==+8613800138000+8613800138000

Example 2 (interpreting outputs)

If you type a US number like (415) 555-2671, the tool can emit a storage-friendly E.164 string.

E.164\text{E.164}==+14155552671+1\,4155552671==+14155552671+14155552671

If a number is marked Is possible? but not Is valid?, it often means the length looks plausible for that region, but the prefix/structure doesn’t match a real assigned range.

Real-world use cases

Cleaning a contact list before import

Background: You have mixed phone formats (spaces, dashes, local formats) in a spreadsheet.

Inputs: Default country US, phone (415) 555-2671.

Result: Store the standardized value as +14155552671+14155552671.

Verifying signup form inputs

Background: You want to catch obviously invalid numbers before sending verification SMS.

Inputs: Default country GB, phone 07911 123456.

Result: Check Is valid? and use E.164 for storage.

Normalizing international support tickets

Background: Customers paste numbers with or without a leading ++.

Inputs: Default country CN, phone 138 0013 8000.

Result: International format becomes +8613800138000+86\,138\,0013\,8000.

Common scenarios / when to use

You receive a “local-looking” number

Pick the right default country, then format it to E.164 for storage.

You’re working across multiple countries

Use international format for display; store E.164 to keep it consistent.

Numbers fail SMS delivery

Check whether the number is “possible” vs “valid” and validate country code assumptions.

You want safer input rules

Use formatting outputs to remove spaces/dashes and standardize what you store.

You suspect duplicates in a CRM

Normalize to E.164 and compare strings exactly (after trimming).

You need a clickable “tel:” link

RFC3966 format is designed for URIs like tel:+14155552671.

Not a perfect fit: if you need carrier lookup or real-time routing info, you’ll need a specialized telecom service. This tool focuses on structural parsing/formatting.

Tips & best practices

  • Store phone numbers in E.164 when you can — it’s compact and unambiguous.
  • If the input doesn’t start with ++, double-check the default country selection.
  • “Possible” but not “valid” is a common sign of wrong region assumptions or a typo.

Calculation method / format explanation

This tool is based on international numbering metadata. The key idea is: once the tool knows the country calling code and the national number, it can emit standard formats.

In simple terms, you can think of:CC=the country calling code,NN=the national number.

E.164=+countryCallingCode  nationalNumber\text{E.164} = +\text{countryCallingCode}\;\text{nationalNumber}

What each output means

  • International format: human-readable international spacing.
  • National format: the typical way people write it in-country.
  • E.164: a canonical format commonly used for storage.
  • RFC3966: a URI-friendly format (often used with tel: links).

Related concepts / background

Key terms

  • Country calling code: the digits after the leading ++ that identify a country/region (for example, +86+86).
  • National number: the rest of the phone number within that region.
  • Number type: an approximate classification (mobile, fixed line, toll-free).

FAQs & limitations

Why does the default country matter?

If the input doesn’t start with ++, the parser needs a region context to interpret the number. The same digits can mean different things in different countries.

Does “valid” guarantee the number is reachable?

No. “Valid” here means the structure matches known numbering rules. Delivery, roaming, and carrier issues are outside the scope of formatting/validation.

Phone parser and formatter | CalculatorVast