Javascript如何在应用特定规则的情况下进行子字符串全局替换

Javascript如何在应用特定规则的情况下进行子字符串全局替换,javascript,string,Javascript,String,我想要一个可以用特定规则替换大字符串中的子字符串的函数 例如,我希望字符串中pageX的每个数字都增加10 function replace(str, increment){} 是否更换(“pageX:100,pageY:200,…pageX:120…”,10) 将获得“pageX:110,pageY:200,…pageX:130…” 我知道像string.replace(/pageX:/g,someStr)可以做replaceAll,但是没有规则可以应用。 如何获得该值?与\d+模式一起使用

我想要一个可以用特定规则替换大字符串中的子字符串的函数

例如,我希望字符串中
pageX
的每个数字都增加10

function replace(str, increment){}
是否更换(“pageX:100,pageY:200,…pageX:120…”,10)

将获得
“pageX:110,pageY:200,…pageX:130…”

我知道像
string.replace(/pageX:/g,someStr)
可以做
replaceAll
,但是没有规则可以应用。 如何获得该值?

\d+
模式一起使用,以匹配所有数字,并使用函数调用生成替换。乘法(或其他方式)修改匹配的数字并将其放回原处。

使用函数回调如何:

var string = "pageX : 100, pageY: 200,......pageX : 120...";
string = string.replace(/(\d+)/g, function(match, contents) {
    return (+contents + 10);
});
console.log(string);

演示:

为什么
200
没有增加(打字错误?)?你必须为此编写自己的逻辑,没有内置的东西可以做到这一点。也就是说:提取数字,增加数字,然后放回原处。看一看是否有灵感。@Felix Kling
200
代表的是
pageY
。有一点不同,然后我会更改句子“我希望字符串中的每个数字都增加10”以使其更清晰。否则每个人都会认为你想改变很多。