1

基本上,我正在尝试使用关联数组中的元素替换部分字符串。但是,我需要根据在 replace() 表达式中捕获组生成的反向引用来获取元素。

使用第一个捕获组,我创建了这段代码,但它不起作用:

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

(正则表达式工作正常......我只是无法让它抓住数组元素。)

我将如何实施这样的事情?

4

1 回答 1

2

String.replace可以将函数作为第二个参数

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

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