次のJavaScript断片を実行すると:
var s = "私が塾長である。私が江田島平八である。"; alert(s.replace("私","ワシ"))
「ワシが塾長である。私が江田島平八である。」と表示されます。二箇所の「私」を「ワシ」に置き換えるには、g(global)オプションが必要です。Firefoxだと次のように書けます。
var s = "私が塾長である。私が江田島平八である。"; alert(s.replace("私","ワシ", 'g'))
表示は「ワシが塾長である。ワシが江田島平八である。」となります。
ところが、Chromeで同じことをしても、replaceの第3引数 'g' は効かないのです。表示が変わりません。replaceメソッドの第3引数ではなくて、正規表現のオプションとして指定する必要があります。
var s = "私が塾長である。私が江田島平八である。"; alert(s.replace(new RegExp('私', 'g'), "ワシ"))
new RegExp('私', 'g') というオブジェクト生成式の代わりに正規表現リテラルを書いても大丈夫なようです。
var s = "私が塾長である。私が江田島平八である。"; alert(s.replace(/私/g, "ワシ"))
みなさんがお使いのブラウザではどうでしょうか?