私は2つのプロパティを持つオブジェクトの配列を持っています:キーと値。オブジェクトのキーに対応するプレースホルダを持つテキストブロックがあります。オブジェクトの対応するValueをプレースホルダに置き換え、一致するキーを使用したいとします。JavaScript置換の問題
私は次のコードを持っている:
function LoadReplacementData(replacementData)
{
var text = $("#textblock").html();
$.each(replacementData, function(index, item)
{
var expression = new RegExp("\[sub:" + item.Key + "\]", "g");
text = text.replace(expression, item.Value);
});
$("#textblock").html(text);
}
を私はJavaScriptの下RegExLib.comでパターンをオーバーテストしていると、それが[サブ」の形をしているプレースホルダのすべてのインスタンスに戻ってくる:KeyText ] "。私はキーと値が正しく戻ってくることを保証しました。私は生成されたさまざまな表現をループし、結果のパターンも正確です。
上記のコードは、text = text...
の行に "Out of Memory Exception"と表示されます。割り当てを解除しても何も起こりません。
私がこの交換をするのに間違っているところはありますか?
「#textblock」の内部HTMLの大きさはどれくらいですか? – tj111
各イテレータをプレーン・フォー・ループに置き換えてもそれでも問題はありませんか? –
@ tj111 2000文字未満です。 – JamesEggers