我有一个字符串,例如“我们有一个 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/