Result
This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.
Facts and limits of this method
| Extracted | Digits 0-9 only |
|---|---|
| Discarded | Letters, punctuation, spaces (unless kept) and any other characters |
| keepSpaces off (default) | All digits are joined into one continuous string with no separators |
| keepSpaces on | Original spaces between digit groups are kept, collapsed to single spaces, ends trimmed |
| Full-width digits | 0-9 and similar are outside 0-9 — not extracted |
| Processing | Runs locally in the browser, nothing is sent to a server |
When it misleads you
- Only plain ASCII digits 0-9 are extracted. Full-width digits (0-9), superscript/subscript forms (², ₃) and digits from other numbering systems are outside that set and are silently dropped along with the letters and punctuation.
- With spacing off, all digit groups are joined into one unbroken string: "+1 (555) 123-4567 ext. 89" becomes "1555123456789", losing any indication of where one number ended and another began. Don't use this mode if you need to tell separate numbers apart.
- With spacing on, only the original single spaces between digit groups survive (collapsed to one space each, ends trimmed) — it preserves roughly where numbers were separated by whitespace, but not by other punctuation like dashes or dots, since those characters are discarded outright rather than treated as separators.
- Decimal numbers lose their separator: "3.14" becomes "314" either way, since the dot is punctuation and gets dropped along with everything else non-digit. There's no way to recover the original decimal position from the digit-only output.
How it is calculated
With "keep spaces" off, the tool runs text.replace(/\D/g, "") — removing every character that is not a digit — leaving a single unbroken string of all the digits found, in their original order.
With "keep spaces" on, the tool first removes everything except digits and whitespace, then collapses any run of remaining whitespace into a single space and trims the ends — so groups of digits that were originally separated by a space stay visually separated, other punctuation between them does not survive.
Either way, only the ten ASCII digits 0-9 are treated as digits. Letters, punctuation, symbols and non-ASCII digit forms are all discarded regardless of the spacing option.
"Digits found" counts the digit characters present in the final result — it equals the total number of 0-9 characters in the original text, since digits are never removed once matched, only rearranged relative to whitespace.
Questions and answers
What does the "keep spaces" option actually preserve?
Only spaces — the whitespace that originally separated groups of digits. Dashes, dots, parentheses and other punctuation between digits are always discarded, whether or not this option is on.
Can I use this to pull a phone number out of a sentence?
Yes — it will extract the raw digits, but strips the formatting (dashes, parentheses, plus sign). With spacing on you'll keep rough groupings if the original had spaces; without it, everything joins into one string.
Does it extract full-width or superscript digits?
No, only plain ASCII 0-9. Full-width digits (0-9) and superscript/subscript forms are outside that set and are discarded, not extracted.
What happens with multiple separate numbers in the text?
Without spacing, they merge into one string with no way to tell them apart. With spacing on, they stay separated wherever the original text had a space between them.
Is my text sent anywhere?
No. The whole operation runs in your browser; the text is never transmitted anywhere.