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
| Default mode | Replaces every comma, including ones separating list items |
|---|---|
| "Digits only" mode | Converts a comma only when it sits directly between two digits |
| Typical use | Preparing European-formatted decimal numbers (3,14) for software expecting a dot (3.14) |
| List safety | In digits-only mode, "apples, pears" is left alone since a space follows the comma, not a digit |
| Plain integer lists | In digits-only mode, "1,2,3,4" written without spaces gets every comma converted |
| Counter | Reflects the number of replacements actually made under the selected mode |
When it misleads you
- With the default settings (digits only off), every comma in the text is replaced with a period — including commas that separate items in a list. Running this on "apples, pears, bananas" produces "apples. pears. bananas", which breaks the list; always turn on digits only before running this on anything other than pure decimal numbers.
- Even with digits only on, a comma directly between two digits and nothing else gets converted — a list of plain numbers written without spaces, like "1,2,3,4" (meant as four separate integers), would have every comma converted into a period, producing "1.2.3.4", which reads as one broken decimal number instead of four integers.
- Digits-only mode is safe for typical prose lists specifically because list items are usually followed by a space ("item one, item two") — the comma there isn't directly between two digits, so it's left alone. It isn't a general list-detector, though; it works because of the digit-adjacency pattern, not because the tool understands what a list is.
- A number using a comma as a thousands separator (the US/UK convention, e.g. "12,345") also matches the digit-comma-digit pattern in digits-only mode and gets converted to "12.345" — the opposite of what's intended, since that comma isn't a decimal separator at all.
How it is calculated
In the default mode, the tool matches every literal comma in the text and replaces it with a period, counting every occurrence.
In digits-only mode, it looks specifically for a digit, followed by a comma, followed by another digit, and replaces only the comma in that pattern — counting only these matches.
Everything else in the text — letters, other punctuation, spaces — is left exactly as it was.
The counter shown always reflects how many replacements were actually made under whichever mode is selected.
Questions and answers
Why would I need this?
To convert European-style decimal numbers like "3,14" into the dot format "3.14" that most spreadsheets, databases and programming languages expect.
Is it safe to run this on a comma-separated list?
Only with digits-only mode enabled, and only if the list items aren't touching digits directly on both sides of the comma — always check the result. With the default settings, every comma in a list gets converted and the list breaks.
Will it break a thousands separator like 12,345?
Yes, if digits-only mode is on — it matches the same digit-comma-digit pattern as a decimal separator, so "12,345" becomes "12.345".
How is this different from the dot-to-comma replacer?
That tool does the opposite conversion — it turns periods into commas, for going from dot-formatted decimal numbers to the European comma style.
Is my text sent anywhere?
No. Everything runs in your browser; the text is never transmitted.