html テンプレートは、私のコードを実行した後、{@bigfoot} として始まります。それは {*bigfoot} です。
最初の正規表現の前に 2 番目の正規表現がどのように処理されているかがわかりますか? なんで?
html = html.replace(new RegExp("{@" + prop + "}", "g"), object[prop]);
html = html.replace(new RegExp("@", "g"), "*");
html テンプレートは、私のコードを実行した後、{@bigfoot} として始まります。それは {*bigfoot} です。
最初の正規表現の前に 2 番目の正規表現がどのように処理されているかがわかりますか? なんで?
html = html.replace(new RegExp("{@" + prop + "}", "g"), object[prop]);
html = html.replace(new RegExp("@", "g"), "*");
これを作成しました: http://jsfiddle.net/kxTs5/ですが、問題を再現できません。
次に、このhttp://jsfiddle.net/kxTs5/2/を作成しました。それができました:o)
2番目の例ではprop
、タイプミスか何かかもしれませんが、テキストに存在しないものを参照しているため、一致がないため、変更はありません.
を自由に使用しconsole.log
て、一致していると思われるものに一致させようとしていることを確認することをお勧めします
最初の表現が正しくありません。
中かっこは、特定のキャプチャ パターンで特定の繰り返し回数を指定するために正規表現で使用されます。
中括弧に一致させるには、それらをエスケープする必要があります。
html = html.replace(new RegExp("\\{@" + prop + "\\}", "g"), object[prop]);