1

基本的に、連想配列の要素を使用して文字列の一部を置き換えようとしています。ただし、replace() 式でグループをキャプチャして生成された後方参照に基づいて要素を取得する必要があります。

最初のキャプチャ グループを使用して、次のコードを作成しましたが、機能しません。

content = content.replace(/%(\w+)%/g,this.vars["$1"]);

(正規表現は正常に機能します...配列要素を取得できません。)

このようなものを実装するにはどうすればよいですか?

4

1 に答える 1

2

String.replace2 番目の引数として関数を取ることができます。

var that = this,
    re = /%(\w+)%/g;

content = content.replace(re, function (str, p1)
{
    return that.vars[p1];
});
于 2011-04-18T04:56:44.703 に答える