在Javascript中对字符串内的整数重新编号

在Javascript中对字符串内的整数重新编号,javascript,regex,Javascript,Regex,我想对字符串中的整数重新编号,该字符串的格式为字母和整数:e1b2xx4d3 在这个例子中,我想得到:e1b2xx3d4 我已经编写了以下JS代码: var count = 0; var matches; var transcript = "e1b2xx4d3"; var transcript1 = transcript; regex = /\d+/g; while ((matches = regex.exec(transcript)) !== null) { transcript1 =

我想对字符串中的整数重新编号,该字符串的格式为字母和整数:e1b2xx4d3

在这个例子中,我想得到:e1b2xx3d4

我已经编写了以下JS代码:

var count = 0;
var matches;
var transcript = "e1b2xx4d3";
var transcript1 = transcript;
regex = /\d+/g;
while ((matches = regex.exec(transcript)) !== null) {
    transcript1 = transcript1.replace(matches[0], ++count);
}
console.log(transcript1);
我们的想法是用序列号计数替换字符串中的每个数字,但由于破坏性替换,它不起作用。在这里,我们得到e1b2xx4d3,因为xx4被xx3替换,但在下一次迭代中被xx4替换回来

我需要使用正则表达式来实现这一点,因为我处理的情况比所示的更复杂,需要使用正则表达式

我认为我必须在两次迭代中完成它:1。编译替换和2。同时应用替换

好奇的是,有人能找到一种一次性完成的方法吗


小提琴:

这通常通过替换功能完成:

n=0 result=e1b2xx4d3.replace/\d+/g,函数{return++n} 警报结果