CLAUDE WATERMARK REMOVER · PRACTICAL TEST
Which dashes do Keep, Replace and Remove actually change?
Replace maps em, two-em and three-em dashes to one ASCII hyphen each; Remove deletes each with no added spacing. En dashes, minus signs and non-breaking hyphens stay unchanged in this homepage implementation.
Open the Claude text cleaner · Full measured data
Measured inputs and outputs
These are locally constructed test strings, not evidence that Claude inserts these characters. We executed the saved homepage script snapshot with a minimal DOM harness and compared exact strings. Invisible removal is enabled; the dash mode appears in each row. The observations below test this page's specific question. We make no detector-score or statistical-watermark removal claim.
| Fixture and mode | Input string and code points | Output and cleaner status | Observed before / after |
|---|---|---|---|
| Em dash direct string / keep | "left—right"U+006C U+0065 U+0066 U+0074 U+2014 U+0072 U+0069 U+0067 U+0068 U+0074 | "left—right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Em dash direct string / replace | "left—right"U+006C U+0065 U+0066 U+0074 U+2014 U+0072 U+0069 U+0067 U+0068 U+0074 | "left-right"Replaced 1 dash | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":1,"asciiSpaces":0} |
| Em dash direct string / remove | "left—right"U+006C U+0065 U+0066 U+0074 U+2014 U+0072 U+0069 U+0067 U+0068 U+0074 | "leftright"Removed 1 dash | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Two-em dash direct string / keep | "left⸺right"U+006C U+0065 U+0066 U+0074 U+2E3A U+0072 U+0069 U+0067 U+0068 U+0074 | "left⸺right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Two-em dash direct string / replace | "left⸺right"U+006C U+0065 U+0066 U+0074 U+2E3A U+0072 U+0069 U+0067 U+0068 U+0074 | "left-right"Replaced 1 dash | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":1,"asciiSpaces":0} |
| Two-em dash direct string / remove | "left⸺right"U+006C U+0065 U+0066 U+0074 U+2E3A U+0072 U+0069 U+0067 U+0068 U+0074 | "leftright"Removed 1 dash | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Three-em dash direct string / keep | "left⸻right"U+006C U+0065 U+0066 U+0074 U+2E3B U+0072 U+0069 U+0067 U+0068 U+0074 | "left⸻right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Three-em dash direct string / replace | "left⸻right"U+006C U+0065 U+0066 U+0074 U+2E3B U+0072 U+0069 U+0067 U+0068 U+0074 | "left-right"Replaced 1 dash | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":1,"asciiSpaces":0} |
| Three-em dash direct string / remove | "left⸻right"U+006C U+0065 U+0066 U+0074 U+2E3B U+0072 U+0069 U+0067 U+0068 U+0074 | "leftright"Removed 1 dash | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| En dash direct string / keep | "left–right"U+006C U+0065 U+0066 U+0074 U+2013 U+0072 U+0069 U+0067 U+0068 U+0074 | "left–right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| En dash direct string / replace | "left–right"U+006C U+0065 U+0066 U+0074 U+2013 U+0072 U+0069 U+0067 U+0068 U+0074 | "left–right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| En dash direct string / remove | "left–right"U+006C U+0065 U+0066 U+0074 U+2013 U+0072 U+0069 U+0067 U+0068 U+0074 | "left–right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Minus sign direct string / keep | "left−right"U+006C U+0065 U+0066 U+0074 U+2212 U+0072 U+0069 U+0067 U+0068 U+0074 | "left−right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Minus sign direct string / replace | "left−right"U+006C U+0065 U+0066 U+0074 U+2212 U+0072 U+0069 U+0067 U+0068 U+0074 | "left−right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Minus sign direct string / remove | "left−right"U+006C U+0065 U+0066 U+0074 U+2212 U+0072 U+0069 U+0067 U+0068 U+0074 | "left−right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Non-breaking hyphen direct string / keep | "left‑right"U+006C U+0065 U+0066 U+0074 U+2011 U+0072 U+0069 U+0067 U+0068 U+0074 | "left‑right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Non-breaking hyphen direct string / replace | "left‑right"U+006C U+0065 U+0066 U+0074 U+2011 U+0072 U+0069 U+0067 U+0068 U+0074 | "left‑right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
| Non-breaking hyphen direct string / remove | "left‑right"U+006C U+0065 U+0066 U+0074 U+2011 U+0072 U+0069 U+0067 U+0068 U+0074 | "left‑right"No selected invisible characters found | {"asciiHyphens":0,"asciiSpaces":0}{"asciiHyphens":0,"asciiSpaces":0} |
The exact replacement matrix
The six inputs have the same left and right words with one intervening code point. Keep returns every input unchanged. Replace changes U+2014, U+2E3A and U+2E3B to U+002D, yielding left-right with one hyphen in each case. It does not preserve the visual width by creating two or three hyphens. Remove produces leftright for those three inputs and inserts zero spaces. For U+2013, U+2212 and U+2011, all three modes return the source unchanged. The downloadable result contains all 18 executions and their status messages.
The label does not mean every dash-like symbol
The implementation matches exactly three code points in a JavaScript regular expression. Its modes are separate from the five invisible characters selected by the checkbox. That is why choosing Remove does not erase an en dash or a mathematical minus. These tests inspect string output rather than font width or grammatical meaning. A minus sign in a numeric expression and an em dash in prose deserve different handling even if they look similar on a particular screen.
Review punctuation as an editorial change
Leave Keep selected while diagnosing invisible-character problems. If a style guide asks for ASCII punctuation, decide whether replacing an em dash with a hyphen is acceptable in that sentence. If removing punctuation joins words, add the intended separator yourself and reread the sentence. The homepage provides no punctuation parser or contextual spacing repair. This matrix defines the current behavior, not what all products named Claude watermark remover do. ECMAScript defines replace and regular-expression operations; the saved script hash and fixture outputs document our exact implementation. Removing a dash is not evidence of removing a statistical watermark.
Reproduce this test
Save reproduce.cjs and tested-app.js in the same folder. Run the command below with Node.js. The harness prints its runtime, script SHA-256 and every measured row. Compare those rows with the original record. Using a newer script or runtime creates a new experiment; retain the version information with your rerun.
node reproduce.cjsReference and next check
ECMAScript string operations provides the relevant primary definition. The table and fixture analysis are original measurements. For broader inspection, use our Unicode inspector. Read the scope distinction before interpreting cleanup as a watermark result.