Why extracting phone numbers is harder than extracting emails
An email address has an unmistakable structure: something, an @, a domain, a dot, a
top-level domain. A phone number has none. It is a run of digits with optional spaces, dots, hyphens,
brackets and a leading plus — which is also an exact description of an invoice number, an order id, a
date and a product code.
So a pattern alone is not enough. This tool matches loosely, then validates each candidate against the
rules real numbers follow: the ITU standard caps a full international number at 15 digits and no national
number is shorter than about 7, so anything outside that range is rejected. Repeated-digit runs like
0000000 go, and anything matching a date layout goes with them.
How to extract phone numbers from text
- Paste your text. Any source works: a web page, an email thread, a directory listing, a CRM export or a spreadsheet column.
- Set the country to assume. Numbers written without a country code are ambiguous. Choosing a country lets the tool convert them to international format. Numbers already starting with + are left as they are.
- Click Extract. Candidates are matched, then filtered — anything outside 7 to 15 digits, any repeated-digit run, and anything shaped like a date is discarded.
- Copy or download. Copy the list, or download it as a .txt of numbers or a .csv holding the original text, the digit count and the international form.
What comes out
- The number as written, so you can find it again in the source and see the format it was published in.
- The digit count, which is the quickest way to spot a number that was captured incompletely.
- International (E.164) format —
+441234567890— which is what CRMs, SMS gateways and calling APIs expect. - Deduplicated results, matched on the international form so
020 7946 0018and+442079460018collapse into one entry. - CSV export carrying all three columns, ready for a spreadsheet or an import.
Formats it recognises
Numbers written in any common style are matched: +44 20 7946 0018,
(415) 555-0132, 0207.946.0018, +971 4 123 4567,
91-98765-43210. Separators may be spaces, hyphens, en dashes, dots or brackets in any
combination.
Conversion to international format follows the normal rule: a leading zero is a national trunk prefix
and is dropped before the country code is added, so 020 7946 0018 with the UK selected
becomes +442079460018. Numbers that already begin with + keep their own country
code regardless of the setting. There is no limit on how much text you can paste.
Why the text is never uploaded
Matching and validation run as JavaScript inside your browser tab, so nothing you paste is transmitted. Load the page, disconnect from the network, and extraction still works.
Phone numbers are personal data under GDPR and similar laws. Pasting a customer list into a website that processes it server-side means a third party now holds that list — a disclosure you would have to account for. Local extraction removes the question entirely.
Where it gets things wrong
No phone extractor is perfect, and it is better to know the failure modes than to trust the output blindly:
- Long reference numbers still slip through. A 10-digit account number is indistinguishable from a 10-digit phone number without context.
- Extensions are not separated.
555-0132 ext. 45returns the main number; the extension is dropped. - It does not check that a number exists. Validation is structural. Confirming a line is live requires a carrier lookup.
- It does not know national numbering plans. A number with a valid length but an impossible area code is still returned.
- Words are not converted.
1-800-FLOWERSis not translated to digits.
Always check the digit count column before importing anywhere that matters.
Who extracts phone numbers
- Sales and outreach — pulling contact numbers out of directories, event listings and exported lists.
- Data cleanup — normalising a mixed-format list into E.164 before a CRM import.
- Recruiting — collecting candidate numbers from applications and CVs.
- Support and operations — recovering numbers buried in a ticket export.
- Migration work — converting a legacy contact export into a format a modern system will accept.
Phone numbers compared with other values in the same text
A contact block usually holds more than one kind of value. Run the same text through the email and URL extractor to pull the addresses and links, and this tool for the numbers — two passes over one paste gives you a complete contact record.
If the numbers are trapped in a document rather than in plain text, extract the text first: use the PDF text extractor for a PDF, the DOCX text extractor for a Word file, or image to text OCR for a screenshot or scan. For a pattern this tool does not cover, the regex extractor lets you write your own.
Phone number formats and known parsing edge cases
ITU-T E.164 defines international format: a leading + sign, a country code of 1–3 digits, and a subscriber number for a combined maximum of 15 digits. National formats vary: the UK writes 07700 900000 locally, which in E.164 is +447700900000 — the leading 0 is a national trunk prefix discarded in international dialling. US numbers are ten digits; the 1 country code is optional in local context.
Three edge cases: (a) five-digit US zip codes and four-digit PINs look like phone fragments,
so the tool requires at least seven consecutive digits after any country-code prefix before
treating a string as a phone number; (b) numbers written with full stops as separators
(1.800.555.0199) are matched alongside hyphen- and space-separated formats in the same pass;
(c) extensions written as x1234 or ext 1234 after a number are
captured as a suffix rather than as a standalone number.
Frequently asked questions
How do I extract phone numbers from a block of text?
Paste the text above, choose the country to assume for numbers without a country code, and click Extract. Results appear as written and in international format.
Is my text uploaded to a server?
No. Matching happens entirely in your browser. Nothing you paste is sent, stored or logged.
What is E.164 format?
The international standard for phone numbers: a plus sign, the country code, then the national number, with no spaces or punctuation — for example +442079460018. It is what most CRMs and SMS services require.
Why were some numbers skipped?
Anything under 7 or over 15 digits is rejected, since that is outside the ITU range for real numbers. Repeated digits and date-shaped runs are filtered too. That trade-off avoids flooding the results with order numbers.
Why did an order number come through as a phone number?
A reference number of plausible phone length cannot be distinguished from a phone number without context. Check the digit count column, which makes odd entries obvious.
Does it handle extensions?
The main number is extracted; the extension is not kept as a separate field. Search the source text if you need extensions.
Can it verify that a number is real?
No. Validation is structural only — the format and length are checked, not whether anyone answers. That needs a carrier lookup service.
Can I extract numbers from a PDF or an image?
Not directly. Extract the text first with the PDF text extractor or image to text OCR, then paste the result here.