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