正規表現の置換を、置き換える前に見せる道具です。
置換テンプレートに書いた $1 や $& を1つずつ読み下し、
置換後のどの文字がどこから来たかを対応づけて表示します。
JavaScript の置換にはエラーにならずに黙って別物になる書き方がいくつもあります。
そこを名指しするのがこの道具の目的です。
$1 に対応するグループが無いと、エラーにならず $1 という文字がそのまま出ます。
グループを1つ減らしたときに気づかないのはこれです。$<名前> は、式に名前つきグループが1つでもあれば特別扱いされます。
そのうえで名前の綴りが違うと、エラーにならず空文字になります(黙って消えます)。
名前つきグループが1つも無い式なら、逆に $<名前> がそのまま文字として出ます。\1 は後方参照ではありません。JavaScript の置換文字列ではただの 1です
(\ は文字列リテラルの段階で消えます)。sed や Python の癖で書くとここで外れます。${1} も特別扱いされません。そのまま ${1} と出ます。$` と $' はマッチの前・後ろを指しますが、
どちらも「元の文字列」を指します。置換しかけの文字列ではありません。g が無ければ最初の1件しか置き換わりません。エラーは出ません。x* など)は文字と文字の間に入ります。
"abc".replace(/x*/g, "-") は -a-b-c- になります。String.prototype.replace は結果の文字列しか返さないので、
「どの文字がどのトークンから来たか」を出すには自分で組み立てるしかありません。replace と突き合わせ、結果を自己検査の欄に出しています。
食い違ったらブラウザのほうが正しいと表示します。