如何在javascript正则表达式替换中粘贴计数器?
对于Perl / PCRE,问题是answered here。
我已经尝试了明显的string.replace(/from/g, "to "+(++count))
,这是不行的(++计数在string.replace的开头被评估一次,似乎)。
答案 0 :(得分:5)
您可以将每个匹配调用的函数传递给replace:
// callback takes the match as the first parameter and then any groups as
// additional, left it empty because I'm not using them in the function.
string.replace(/from/g, function() {
return "to " + (++count);
});
我发现这是一个非常方便的工具,可以在客户端替换复杂的字符串部分(例如带有嵌入代码的用户注释),以减轻服务器上的负担。
答案 1 :(得分:2)
使用回调可能有效:
var i = 0;
string.replace(/from/g, function(x){return "to " + i++;})
干杯。