如何在Javascript中对正则表达式反向引用匹配执行操作?

如何在Javascript中对正则表达式反向引用匹配执行操作?,javascript,regex,Javascript,Regex,在javascript中,我有一个包含数字的字符串,我想将值增加1 例如: var string = "This is a string with numbers 1 2 3 4 5 6 7 8 9 10"; var desiredResult = "This is a string with numbers 2 3 4 5 6 7 8 9 10 11"; 使用正则表达式,是否可以对匹配的反向引用执行操作(本例中为加法) A使用Ruby发现了类似的问题: string.gsub(/(\d+)

在javascript中,我有一个包含数字的字符串,我想将值增加1

例如:

var string = "This is a string with numbers 1 2 3 4 5 6 7 8 9 10";

var desiredResult = "This is a string with numbers 2 3 4 5 6 7 8 9 10 11";
使用正则表达式,是否可以对匹配的反向引用执行操作(本例中为加法)

A使用Ruby发现了类似的问题:

string.gsub(/(\d+)/) { "#{$1.to_i + 1}"}
将函数用作第二个参数:

var s1=“这是一个数字为1 2 3 4 5 6 7 8 9 10的字符串”;
var s2=s1.replace(/\d+/g,函数(x){returnnumber(x)+1;});
s2;//=>“这是一个数字为2 3 4 5 6 7 8 9 10 11的字符串”
请注意,如果使用匹配组,则函数的第一个参数将是整个匹配,并且下面的每个参数将是编号的匹配组

var x = "This is x1, x2, x3.";
var y = x.replace(/x(\d+)/g, function(m, g1) {
  return "y" + (Number(g1)+1);
});
y; // => "This is y2, y3, y4."
找到了

var string = "This is a string with Numbers 1 2 3 4 5 6 7 8 9 10";
var desiredResult = "This is a string with Numbers 2 3 4 5 6 7 8 9 10 11";
var actualResult = string.replace(/([0-9]+)/g, function() {
    return parseInt(arguments[1])+1 
});
console.log(actualResult)

应该猜到匿名函数会起作用。

fast。我最终在我的实际代码中使用了参数[n](相对于x)(因为我有多个反向引用)