Text Cleaner
Remove special characters, HTML tags, punctuation, numbers, or any custom characters from text.
Did this tool work for you?
How to use this calculator
- 1
Paste the text you want to clean into the box.
- 2
Select the narrowest filter that matches the problem: tags, special characters, punctuation, numbers, emojis, URLs, non-ASCII or line breaks.
- 3
Check the Characters removed and Result length rows to confirm the filter did what you expected.
- 4
If gaps are left behind, run the result through the Remove Extra Spaces tool, or paste it back in with a second filter.
Frequently asked questions
Does the HTML mode decode entities such as &?
No, it deletes them. Anything shaped like &name;, ' or ' is replaced by a space, so "Tom & Jerry" becomes "Tom Jerry" with the ampersand gone. If you need the literal characters back, decode the entities first; this mode is for stripping markup, not translating it.
Does it remove the contents of script and style tags?
No. It removes only the tags themselves, from an opening angle bracket to the next closing one. JavaScript or CSS between the tags stays in the text. A stray less-than sign in ordinary prose, as in "a < b and c > d", will also be treated as a tag and everything between the brackets lost.
What is the difference between "special characters" and "punctuation"?
Special characters keeps only English letters A to Z, digits and whitespace, so accented letters are deleted too: "Café déjà-vu" becomes "Caf djvu". Punctuation removes symbols and punctuation but keeps letters from any alphabet, digits, underscores and whitespace: the same text becomes "Café déjàvu". Prefer Punctuation for non-English text.
Which emoji does it remove?
It removes characters in the Unicode emoji and symbol blocks, plus the invisible joiner, variation selector, keycap and tag characters that glue sequences together, so skin-tone variants, family sequences and flags go cleanly. Plain symbols in those same blocks, such as ♪ and ✔, go as well. Characters like © and ™ sit outside those blocks and are kept.
What counts as a URL in the URL mode?
Text starting with http:// or https://, or with www., running to the next whitespace. That means punctuation stuck to the end of a link is removed with it, so the full stop in "see https://example.com." disappears too. Links with other schemes (ftp:, mailto:) and bare domains without www are left alone.
Why are there double spaces after cleaning?
Removal leaves the surrounding spaces in place: "Order 66 ships" with numbers removed becomes "Order ships" with two spaces. Run the result through the Remove Extra Spaces tool if you want them collapsed. The Line breaks mode is the exception, as it collapses repeated whitespace itself.
Does Numbers mode remove digits from other scripts?
No. It removes the ASCII digits 0 to 9 only. Arabic-Indic, Devanagari and other numeral systems stay. The Non-ASCII mode will take them out, along with every other character outside plain ASCII; it does not transliterate, so "naïve" becomes "nave".
Text cleaner: what each filter removes
Eight filters, eight different jobs
Each filter deletes one class of characters and leaves everything else in place, including whitespace. Choosing the narrowest filter keeps more of your text intact, so match the filter to the actual problem rather than starting with Special characters. The table lists what each one removes and the side effect to expect.
| Filter | Removes | Watch out for |
|---|---|---|
| HTML tags | Tags and entities | Entities become spaces; script text stays |
| Special characters | Everything but A-Z, 0-9, whitespace | Accented letters are lost |
| Punctuation | Punctuation and symbols | Underscores kept |
| Numbers | ASCII digits 0-9 | Leaves double spaces |
| Emojis | Emoji and pictographic symbols | Also removes ♪ ✔ ★ |
| URLs | http(s):// and www. links | Takes trailing punctuation |
| Non-ASCII | Every character above code 127 | Curly quotes and dashes vanish |
| Line breaks | Joins lines with single spaces | Collapses runs of 2+ whitespace characters |
Worked examples
The first four rows apply four filters to one string, "Café déjà-vu, 100% sure!", and show why the choice matters for accented text: Special characters deletes é and à, Punctuation keeps them. The URL row leaves two double spaces where links used to be, because the filter removes the link and not its neighbours. The HTML row mixes a tag, an entity and a script: the tags go, the entity turns into a space, and the script’s code stays behind as ordinary text.
| Input | Filter | Output | Removed |
|---|---|---|---|
| Café déjà-vu, 100% sure! | Special characters | Caf djvu 100 sure | 7 |
| Café déjà-vu, 100% sure! | Punctuation | Café déjàvu 100 sure | 4 |
| Café déjà-vu, 100% sure! | Numbers | Café déjà-vu, % sure! | 3 |
| Café déjà-vu, 100% sure! | Non-ASCII | Caf dj-vu, 100% sure! | 3 |
| See https://example.com/a?b=1. or www.test.org now | URLs | See or now | 38 |
| <p>Tom & Jerry</p><script>x()</script> | HTML tags | Tom Jerryx() | 28 |
Emoji, line breaks and other edge cases
A test string with a smiley, a family sequence, ♪, ✔, © ™ and a flag lost 16 characters in the Emojis filter: the pictographs and the joiners went, while © and ™ stayed. In Line breaks mode, the words one, two and three on separate lines (a CRLF after the first, three line feeds after the second), then two non-breaking spaces and four, came out as "one two three four" with single spaces. The tab in "four" + tab + "five" survived, since only runs of two or more whitespace characters collapse. Digits written in other scripts, such as ٣, survive Numbers mode.
Typical tasks and their limits
Stripping HTML turns a copied snippet into text for a database field or plain-text email. Punctuation removal prepares text for word counting or keyword comparison. Removing URLs and emoji tidies social posts before analysis. The HTML filter is a pattern match, not a parser: "a < b and c > d" loses everything between the brackets, leaving "a d", and malformed markup or comments containing a greater-than sign are not handled reliably. Do not use it as a security sanitiser for content that will be rendered in a page.
Order matters when chaining filters
Run filters one at a time and feed the result back in. Remove URLs before punctuation: once the colons, slashes and dots are gone, a link no longer looks like a link and its letters stay behind. Remove HTML tags before anything else on scraped pages, since tag names and attributes would otherwise survive as words. Finish with the Remove Extra Spaces tool, because every filter except Line breaks leaves gaps where text used to be.
Learn more from an authoritative source:
WikipediaReadability Score Calculator
Calculate the Flesch Reading Ease score, Flesch-Kincaid grade level, and key text statistics for any piece of writing.
Headline Analyzer
Score your blog post, email, or article headline for emotional impact, power words, word balance, and SEO potential.
Blog Title Generator
Generate 10 click-worthy blog post titles for any topic using proven headline formulas — listicles, how-tos, questions, and more.
Article Outline Generator
Generate a structured article or blog post outline with H2 and H3 headings, word count targets, and content suggestions.
Text Summarizer
Summarize any article, essay, or document into key bullet points, a short paragraph, or a TL;DR in seconds.
Keyword Extractor
Extract the most important keywords and phrases from any text. Great for SEO research, content analysis, and meta keyword generation.
Results are estimates for informational purposes only and do not constitute professional financial, medical, legal, or technical advice. Read full disclaimer →