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 | Plain text match, case-sensitive, not limited to whole words |
|---|---|
| Case-sensitive | On by default — turn it off to match "Dog" and "dog" the same way |
| Whole word only | Wraps the search text with word boundaries (\b); ignored when regex mode is on |
| Regular expression mode | Uses the "find" field as a JavaScript regular expression pattern instead of literal text |
| Match scope | Every occurrence in the text is replaced, not just the first one |
| Invalid pattern | In regex mode, an invalid pattern leaves the text unchanged and shows 0 replacements instead of failing |
When it misleads you
- In plain text mode, special regular-expression characters typed into "find" (like ".", "*" or "?") are treated as literal characters, not as pattern syntax — turn on regex mode if you actually need them to mean something special.
- "Whole word only" relies on a simple word-boundary rule based on letters, digits and underscores; it may behave unexpectedly around punctuation-heavy text or languages where "word" is not a clearly delimited unit.
- Regular expression mode gives you the full power (and the full risk) of JavaScript regex syntax — a pattern that matches empty strings, or one with catastrophic backtracking on a long input, can behave surprisingly or run slowly.
- The tool searches and replaces in memory, one pass over the current text; it does not support multi-step or chained replacements in a single run — run it again on the result for a second pass.
How it is calculated
In plain text mode, the "find" value is escaped so that characters with special meaning in regular expressions are treated literally, then optionally wrapped in \b...\b when whole-word matching is on.
In regular expression mode, the "find" value is used as-is to build the search pattern, giving access to character classes, quantifiers, groups and the rest of JavaScript regex syntax.
The case-sensitive switch controls whether the case-insensitive "i" flag is added to the underlying pattern; the search always replaces globally, i.e. every match in the text, not just the first one.
"Replacements made" counts how many times the pattern matched and was substituted; if "find" is empty, or the pattern is invalid in regex mode, the text is returned unchanged and the count is 0.
Questions and answers
What happens if I turn on regex mode with an invalid pattern?
The tool catches the error internally: the output text stays exactly as the input, and "replacements made" shows 0 — it never throws a visible error.
Does "whole word only" work together with regex mode?
No, it's ignored when regex mode is on — in regex mode you control word boundaries yourself using \b directly in your pattern.
Is matching case-sensitive by default?
Yes. Turn the "case-sensitive" switch off to match "Dog", "dog" and "DOG" the same way.
Can I use capture groups and backreferences like $1?
Yes, in regex mode standard JavaScript replacement syntax works, including $1, $2 and named groups in both the pattern and the replacement text.
Is my text sent anywhere?
No. Everything runs in your browser; the text you paste is never uploaded.