Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · DESTINATION TEST

Why does a dot match split my cleaned emoji into two results?

Without u, dot returns two surrogate units; with u, it returns one emoji.

Tested 5 November 2026 · Synthetic fixtures · Minimal DOM

What the test establishes

Both matches operate on exactly the same callback result. The differing arrays come from the regular expression mode rather than a second removal operation. A destination that builds one row per match must decide whether its pattern operates on UTF-16 units or Unicode code points. Choosing Unicode mode preserves this single-code-point emoji as one match, but does not establish grapheme segmentation for joined emoji or combining sequences. The fixture isolates one supplementary character and publishes the escaped surrogate results so a reader can reproduce the distinction even if a renderer displays replacement glyphs for the individual units.

Reproduce the observation

Save tested-app.js and reproduce.cjs together, then run node reproduce.cjs. Compare its output with the recorded observation. The harness executes the actual homepage callback in a minimal DOM and records its resulting field values and method calls. Destination operations run in Node.js; the homepage DOM is a controlled substitute. Runtime: v24.22.1. No submitted text or genuine Claude output is used.

{
  "text": "😀",
  "plain": [
    "\ud83d",
    "\ude00"
  ],
  "unicode": [
    "😀"
  ]
}

Capability boundary

One supplementary code point is measured. Grapheme clusters and dotAll behavior are excluded.

This Claude watermark remover edits a small selected character set. These callback observations do not establish authorship, detector scores, statistical-watermark removal or end-to-end browser behavior. For real work, keep the original and compare the exact result at its destination.

Primary material and next step

The tested first-party source snapshot and complete harness are the primary material for this page. For broader scope, read invisible Unicode versus AI watermarks, or return to the cleaner.