javascript - 如何用+ 1替换字符串中的数字?

标签 javascript regex replace backreference

我有一个字符串,例如“我们有一个 foobar,每个栏最多可以提供 20 foo。” 我想替换每次出现的“最多为” + 任意长度的数字 <number++ 。上述字符串将导致:

"We have a foobar which can provide <21 foo per bar."

我想到了类似的事情:

string.replace("/maximum\sof\s\d+/ig", `<${$1++}`)

但我无法让它工作,因为 $1 仅向后引用整个捕获组而不是单个数字。我也在字符串格式方面遇到了困难。

最佳答案

您可以使用回调函数和捕获组

maximum\sof\s(\d+)
  • maximum\sof\s - 匹配最大值
  • (\d+) - 匹配一个或多个数字(捕获组 1)
<小时/>

在回调中,我们可以使用捕获的组来替换我们想要的任何额外内容

let str = "We have a foobar which can provide a maximum of 20 foo per bar."
let replaced = str.replace(/maximum\sof\s(\d+)/ig, (_, g1) => '<' + (+g1+1))

console.log(replaced)

关于javascript - 如何用+ 1替换字符串中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60975690/

相关文章:

java - 使用零宽度断言负先行匹配包含字符串 "abc"的字符串

python - 正则表达式 : pull the data between "FOO" and "BAR"

java替换字符串中的字符

javascript - pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);

javascript - 如何替换 VS2010 javascript 文件

javascript - 文本没有内联显示?

java - 如何从java字符串中删除[]和()

javascript - 如何使用 Javascript 刷新 PHP 脚本页面

regex - 编写正则表达式的更好方法

javascript - 查找并替换分组主题标签的实例