JavaScript String Replace
今日遭遇したバグの話
'foo bar'.replace("bar", '$$BAZ$$'); // => "foo $BAZ$"
"$$BAZ$$"
が返ってくるのを期待していたコードだったが、
第二引数に$$
が含まれる場合、replace
メソッドによって$$
が$
に置換されるため、
意図したとおりに動いていなかった。
次のように修正した。
'foo bar'.replace("bar", '$$BAZ$$'.split('$').join('$$')); // => "foo $$BAZ$$"