Javascript如何使用应用的特定规则进行子串全局替换

时间:2012-05-11 09:31:47

标签: javascript string

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

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

function replace(str, increment){}

replace("pageX : 100, pageY: 200,......pageX : 120...", 10)

将获得"pageX : 110, pageY: 200,......pageX : 130..."

我知道string.replace(/pageX :/g,someStr)可以执行replaceAll,但不能应用任何规则。 我怎么能得到它?

2 个答案:

答案 0 :(得分:1)

如何使用replace函数回调:

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

DEMO: http://jsfiddle.net/ytptN/

答案 1 :(得分:0)

使用带有\d+模式的Regexp匹配所有数字,并使用String.replace能力通过函数调用生成替换。乘以(或以其他方式)修改匹配的数字并将它们放回去。