What a blind strip does to real text
Most online removers delete every character on a fixed list. Plain sentences survive that. Prices, times and addresses do not.
| Your text | Blind strip | Default settings here |
|---|---|---|
1,250.75 | 125075 | 1,250.75 |
12:30 | 1230 | 12:30 |
-5 | 5 | -5 |
billing@toolexe.com | billingtoolexecom | billing@toolexe.com |
red/green | redgreen | red green |
wait...what | waitwhat | wait what |
e.g. | eg | eg |
A price that loses its decimal point is the worst outcome here, because the text still looks fine. 125075 gives no hint that a value changed by a factor of 100.
Try Load sample, then press Show changes
Load sample fills the box with a three-line warehouse note built to trip a remover. The list shows 30 marks: 22 removed, 8 protected. Show changes strikes the removed marks in red and tints the protected ones green, so you check the work at a glance.
Two results deserve a second look.
- OConnor. Apostrophes go by default, since most people pasting here want them gone. Tick Apostrophes in words and
O’Connorandcan’treturn, with the counts moving to 20 removed and 10 protected. - The dollar sign. The number rule guards the marks inside
1,250.75, not the currency sign before it. Click$in the list to keep the sign.
Want only the commas gone? Press Only what I click, then click the comma.
Your keyboard never typed half these marks
Type an apostrophe in Word, Google Docs or on an iPhone and autocorrect swaps in a curly one. Find and replace on ' then misses it, as does any remover built on the 32 ASCII marks. A paste from a document holds more of these than you expect:
| Mark | Name | Code point | Usual source |
|---|---|---|---|
| ’ | Curly apostrophe | U+2019 | Word, Google Docs, iPhone keyboard |
| “ ” | Curly double quotes | U+201CU+201D | The same autocorrect |
| — | Em dash | U+2014 | Two hyphens after autocorrect |
| – | En dash | U+2013 | Number ranges in PDFs and books |
| … | Ellipsis character | U+2026 | Three periods after autocorrect |
| ¿ ¡ | Inverted marks | U+00BFU+00A1 | Spanish text |
| 。, | Chinese full stop, fullwidth comma | U+3002U+FF0C | Chinese text |
| ؟ | Arabic question mark | U+061F | Arabic text |
This page reads the Unicode punctuation and symbol categories, so every mark above lands in the list. Emoji sit in the symbol category too, and we exclude them on purpose. To drop an emoji, paste it into Also remove these characters.
Pick settings by where the text goes
| Text is headed for | Strip | Protect | Reason |
|---|---|---|---|
| Keyword list or word cloud | All marks | Apostrophes, hyphens | can't and can stay separate terms |
| Word counts in a bag-of-words model | All marks | None | Every token matches, with one spelling per word |
| Product titles for a feed | Symbols | Numbers | Drops ® ™ and *, leaves sentence marks alone |
| Caption with hashtags | Sentence marks | Links | # and @ are symbols, so tags survive |
| Transcript notes | Quotes and brackets | Numbers | Removes the brackets, keeps the words inside them |
One curly apostrophe shrinks an SMS from 160 characters to 70
GSM-7, the default SMS alphabet, fits 160 characters in a message. Curly quotes and em dashes fall outside the set, so a single one switches the whole message to UCS-2, which fits 70. A 155-character reminder then bills as three segments instead of one.
Deleting every apostrophe is the wrong fix, since readers notice dont. Turn on smart encoding if your gateway has it, as Twilio and Telnyx do, or swap ’ for ' in the Text Replacer before sending. Keep this page for the em dashes and symbols.
Doing this in code
Each common one-liner carries a trap.
Python
import re, string
text.translate(str.maketrans("", "", string.punctuation))re.sub(r"[^\w\s]", "", text)string.punctuation holds the 32 ASCII marks only, so can’t and the em dashes pass through untouched. The regex catches them, but deletes emoji as well, and _ stays because \w counts the underscore as a letter.
JavaScript
text.replace(/[\p{P}\p{S}]/gu, "")The u flag is required for \p. Emoji go here as well, and a heart emoji leaves a stray invisible variation selector behind.
Google Sheets and Excel
=REGEXREPLACE(A1, "[\p{P}\p{S}]", "")=REGEXREPLACE(A1, "[[:punct:]]", "")The first line is for Sheets. The second is the safer start in Excel, where REGEXREPLACE needs Microsoft 365. Excel 2021 and 2024 do not have the function. Test on a cell with curly quotes before filling down the column, since [[:punct:]] targets ASCII.
None of these guard numbers or links. Any of them turns 12:30 into 1230.
Leave the punctuation in for these jobs
- Language models and embeddings. Stripping belongs to the bag-of-words era. Tokenizers for BERT and GPT models treat punctuation as part of the input, so send raw text.
- Text-to-speech and screen readers. Commas and periods drive the pauses. Stripped text reads aloud as one long breath.
- Security. Removing quotes does not stop SQL injection. Use parameterized queries, then validate the input against what your field allows.
- Contracts and quotations. Commas carry legal weight. A missing serial comma in a Maine overtime law led Oakhurst Dairy to a $5 million settlement in 2018.
- Source code, CSV and JSON. Their punctuation is syntax. Use the Delimited Text Extractor for structured rows.
Known limits
- Longer abbreviations. Best fit folds
e.g.andU.S.A.together, but splitsPh.D.intoPh D. Set the dropdown to Nothing for abbreviation-heavy text. - Unusual web addresses. The link rule looks for http, www and common endings such as .com, .org and .io. A bare
toolexe.museumwould lose the dot. - Text without spaces. In Chinese and Japanese, Best fit puts a space where a comma sat. Choose Nothing there.
- Plain text only. Bold, links and headings in your paste arrive as plain characters.
- Long pastes. A 1 MB test file cleaned in under 200 ms on our laptop. Past 50,000 characters the page waits for a pause in typing. Show changes stops at 20,000 characters, while the result covers the full text.
Cleaning runs in your browser. Your text never reaches Toolexe, and a refresh wipes the box.