Remove Special Characters
Paste your text below, symbols and special characters are stripped instantly, with control over what to keep.
About the Remove Special Characters Tool
Symbols and special characters get filtered out, keeping only letters plus whichever categories, spaces, line breaks, numbers, or basic punctuation, you choose to preserve. Useful for sanitizing usernames, cleaning up copy-pasted content, or prepping text for systems that only accept plain alphanumeric input.
Only plain ASCII letters are kept by default — accented and non-Latin letters are removed entirely
The one part of the allowed character set that's never optional is a-zA-Z, the 26 unaccented English letters in both cases. No checkbox extends that range, which means an accented letter like é, ñ, or ü is treated exactly like a symbol and deleted outright, not converted to its plain equivalent — "café" becomes "caf," not "cafe." The effect is much larger on text written in a non-Latin script: every letter in Russian, Arabic, Hindi, Chinese, or any other language whose alphabet isn't a-z falls outside this tool's allowed set entirely, so running a sentence in one of those languages through it strips out essentially all of the actual content, leaving only whatever numbers, spaces, or punctuation you chose to preserve. If you specifically want accented Latin letters kept as their plain equivalent rather than deleted, run your text through this site's Remove Accents/Diacritics tool first, then through this one.
"Keep basic punctuation" covers exactly four characters, not punctuation in general
That checkbox adds only a period, comma, exclamation point, and question mark to the allowed set. Apostrophes, quotation marks, colons, semicolons, hyphens, and parentheses are not included, so even with that option checked, a contraction like "don't" loses its apostrophe and comes out as "dont," and a hyphenated word like "well-known" comes out as "wellknown." If you need a broader set of punctuation preserved, this tool's fixed four-character list won't cover it — you'd need to adjust your approach or accept that those specific marks will be stripped regardless of the punctuation checkbox.
Checkbox order doesn't matter here, unlike some of this site's other tools
The allowed-character string is built by appending each enabled category's characters one after another, but because the result is used inside a regex character class, [...], the order those characters appear in has no effect on what gets matched — a character class is an unordered set, not a sequence. That's a genuine difference from tools on this site where processing order changes the result, like the ampersand-first rule on the HTML Encoder; here, whichever order the checkboxes happen to be checked in, or whichever order their characters get concatenated in, produces the exact same allowed set and the exact same output.
The regex is assembled from fixed fragments, never from your typed text
Building a regular expression at runtime from a string is normally something to be careful with, since a regex pattern built from unescaped user input can behave unpredictably or match more than intended. That risk doesn't apply here: every piece that gets concatenated into the pattern is a small, fixed, hardcoded fragment tied to a checkbox's on/off state — never anything typed into the text box itself — so the character class the tool builds is always exactly one of a small, predictable set of combinations, regardless of what you paste in to be filtered.
Sixteen possible combinations, one per checkbox state
With four independent checkboxes, there are exactly 16 possible allowed-character sets the tool can build, ranging from the strictest (only letters, every other checkbox off) to the most permissive (letters, numbers, basic punctuation, spaces, and line breaks all preserved). Because letters are always kept and nothing you type can add a fifth category, you can predict exactly what any given combination of checkboxes will strip before running your text through it — useful when you're preparing input for a system with a documented allowed-character list, like a username field that only accepts letters and numbers, where you can match the requirement exactly by checking just "Keep numbers" and leaving the rest off.
Frequently Asked Questions
Does this convert accented letters like é to their plain form, or delete them?
It deletes them. Only the plain ASCII letters a through z (and A through Z) are kept unconditionally, with no checkbox to include accented letters, so "café" becomes "caf" rather than "cafe." Use this site's Remove Accents/Diacritics tool first if you want accented letters converted to their plain equivalent instead of removed.
What happens to text written in a non-Latin script, like Russian or Arabic?
Nearly all of it gets removed. Every letter in those alphabets falls outside the a-zA-Z range this tool always keeps, so running non-Latin text through it strips out essentially all of the actual wording, leaving only numbers, spaces, or punctuation depending on which options are checked.
Does "Keep basic punctuation" preserve apostrophes and hyphens?
No, that option only preserves four characters: period, comma, exclamation point, and question mark. Apostrophes, hyphens, colons, and quotation marks are removed regardless of whether that checkbox is on, so a word like "don't" becomes "dont."
Does the order I check the boxes in change the result?
No. The allowed characters end up inside a regex character class, which is an unordered set, so it doesn't matter what order the categories were enabled in — only which ones are currently checked affects the output.
Is my text sent to a server when I use this tool?
No. All filtering happens locally in your browser as you type; nothing is uploaded anywhere.