Javascript RegExp 将字符串中的所有数字减一

标签 javascript regex

输入是这样的:

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 的第二个参数时,您会收到完整匹配项和每个捕获组作为参数,并且无论您返回什么,都会插入原始匹配项所在的位置。在这里,我匹配文字 (),解析中间的 [captured] 数字并将其递减。

关于Javascript RegExp 将字符串中的所有数字减一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16495419/

相关文章:

javascript - ajax 调用和 Controller 函数中的多个循环值

c# - 删除破折号但不删除连字符

java - GWT 正则表达式结果与 Java 中的相同正则表达式不同

php - 如何在 PHP 中使用正则表达式将字符串拆分为子字符串数组?

javascript - 涉及css缩放时如何获取页面的点击位置

javascript - JQuery 没有单选按钮检查问题

php - 如何以设定的时间间隔单独显示行?

Javascript DataTables - filter() 函数未按预期工作

.net - 使用正则表达式进行搜索和替换(包括lookbehinds)在 VS2017 中不起作用

javascript - 获取与 javascript 正则表达式的链接