输入是这样的:
path = "html body div div:eq(2) p:eq(4)"
我想将括号中的所有数字减一,并得到一个字符串
path = "html body div div:eq(1) p:eq(3)"
我应该怎么办?提前致谢。
输入是这样的:
path = "html body div div:eq(2) p:eq(4)"
我想将括号中的所有数字减一,并得到一个字符串
path = "html body div div:eq(1) p:eq(3)"
我应该怎么办?提前致谢。
Prinzhorn 的回答更简洁,但我想提供一个“更严格”的替代方案(也只考虑括号内的数字,而不是任何地方)。
path = path.replace(/\((\d+)\)/g, function(match, group1) {
return "(" + (parseInt(group1,10) - 1) + ")";
});
注意:当您提供一个函数作为 的第二个参数时replace
,您会收到完整匹配和每个捕获组作为参数,并且您返回的任何内容都会插入到原始匹配所在的位置。在这里,我匹配文字(
and )
,解析中间的 [captured] 数字并将其递减。
str.replace(/\d+/g, function(a) {return a - 1;});