QA@IT

JavaScript の replace で $ を $' に置換した場合の挙動

2174 PV

以下のコードを実行したときに

$'replace

ではなく

replacereplace

と出力されるのはなぜですか?

var b = '$replace';

console.log( b.replace("$", '$\'') );

回答

置換先文字列内では $` は特殊な役割を持っていて、「第一引数のパターンにマッチした部分より後の文字列」を表します。
参考までに、他には $& $' $数値 に特殊な役割があります。

期待するような結果にするためには、'$$\'' か "$$'" と書く必要があります。

編集 履歴 (0)
  • ありがとうございます。
    第二引数の$は特殊なんですね。関数も指定できるんですね。
    http://mzl.la/RQbrZw
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。