我有一个字符串,例如“我们有一个foobar,每个bar最多可以提供20个foo。”我想用<number++
替换每次出现的“最大” +任何长度的数字。上述字符串将导致:
“我们有一个foobar,每个bar可以提供
我坚韧的像:
string.replace("/maximum\sof\s\d+/ig", `<${$1++}`)
但是我不能让它作为$ 1仅反向引用整个捕获组,而不是单个数字。我也为字符串格式而苦恼。
最佳答案
您可以使用回调函数和捕获组
maximum\sof\s(\d+)
maximum\sof\s
-匹配maximum of
(\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)