3

如何在 javascript 正则表达式替换中粘贴计数器?

对于 Perl/PCRE,这个问题在这里得到了回答。

我已经尝试了明显的string.replace(/from/g, "to "+(++count)),这不好(似乎在 string.replace 的开头评估了 ++count 一次)。

4

2 回答 2

5

您可以将每个匹配调用的函数传递给替换:

// 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);
});

我发现这是一个非常方便的工具,可以在客户端替换复杂的字符串部分(如用户注释与嵌入代码),以减轻服务器的负担。

于 2013-04-05T06:07:07.093 回答
2

使用回调可能有效:

var i = 0;
string.replace(/from/g, function(x){return "to " + i++;})

干杯。

于 2013-04-05T06:07:54.880 回答