String.prototype.replace()
page on MDNによると、私はちょうどなぜChromeやIEでjavascriptの代わりにグローバルフラグが動作しないのですか?回避するにはどうすればよいですか?
str.replace('what to replace', 'replace with', 'flags')
を使用して'g'
にフラグを設定することで簡単に複数のパターンを交換することができるはずです。
Firefox 3.6では完璧に動作します。しかし、ChromeとIE8では、最初のファイルは'what to replace'
に置き換わります。
私は
str.replace(/what to replace/gi, 'replace with')
構文を使用することができます。しかし、私は'what to replace'
を配列から抜き出しているため、その構文でフラグを追加するのは難しくなります。
私が使用しようとしているコードは次のとおりです。 ChromeとFirefoxで動作するように変更するにはどうすればよいですか?
function generateQuestion()
{
//alert('variable length: '+variableList.length);
for(i=0;i<variableList.length;i++)
{
variable = variableList[i];
rep = replacementList[i];
flags = "gi";
questionText = questionText.replace(variable, rep, flags);
}
}
そして、なぜ私はまったくそれを修正する気にする必要がありますか?リンクで説明されているようにChromeがJavaScriptを評価するべきではありませんか?
ありがとうございました!私はそれがそれのような単純なものでなければならないことを知っていた。問題を見るには別の人が必要でした。:D –
しかし、RegExpの文字列をエスケープしなければならないという問題があります。これはかなりエラーがあります。 – Mitar
@Mitar残念ですが、その周りには方法がありません。あなたはただエスケープすることに注意する必要があります –