Javascriptのreplace

文字列置換 String.replace は文字列置換としては1つ目にマッチしたものしか置換しませんよ。

正規表現置換なら

subject.replace((new RegExp('search', 'g')), 'replace');
//または
subject.replace(/search/g, 'replace');

でマッチしたものすべて置換します。全部置換したいなら嫌でも正規表現置換するしかなさそうですね(ほかにやり方あったら教えてください)

なぜかFireFoxだけは

  subject.replace('search', 'replace', 'g');

って第3引数に'g'フラグをいれると文字列置換ですべて置換する謎。replaceメソッドに第3引数いれれるなんてのはECMAの仕様書に載ってないはず。