2011-04-18 43 views
1

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

使用第一个捕获组,我创造了这个代码,它不工作:(正则表达式正常工作...我只是不能让它抢数组元素)

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

我该如何去实现这样的事情?

回答

2

String.replace can take a function as the second argument

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

content = content.replace(re, function (str, p1) 
{ 
    return that.vars[p1]; 
}); 
+0

哦哇。那么简单;为什么我没有想到这一点?谢谢! :) – BraedenP 2011-04-18 05:00:32

+1

因为你不知道'replace'可以带功能吗?因为它不平凡?你将不得不问一个新的问题(可能在一个不同的SE网站)来获得答案;-) – 2011-04-18 05:02:08

+0

呵呵..我知道替换可以采取一个功能;由于某种原因,它只是没有跨过我的脑海。 我只是等到时间倒数,所以我可以接受你的答案。 – BraedenP 2011-04-18 05:04:26