如何用该数字加上偏移量替换字符串模式中的所有数字实例。
假设我想用那个数字加上一个偏移量替换所有 HTML 标签
strRegEx = /<ol start="(\d+)">/gi;
strContent = strContent.replace(strRegEx, function() {
/* return $1 + numOffset; */
});
答案 0 :(得分:4)
如果您返回 $1 + numOffset;
,您将得到一个连接的字符串。
如果您将 $1
转换为 int,您将只返回组值和 numOffset 的相加,并且不会获得匹配的标签的其余部分,并且不会在替换中返回。
您可以从捕获组2中获取数字并捕获组1中之前的内容,并在replace的函数中添加3个参数,第一个是完整匹配(未使用),和{ {1}}、g1
指的是捕获组。
g2
然后使用例如 parseInt 并添加 numOffset。
(<ol start=")(\d+)(?=">)
或者使用积极的lookbehind和一个没有捕获组的匹配
let strContent = `<ol start="4">`;
const strRegEx = /(<ol start=")(\d+)(?=">)/gi;
const numOffset = 2;
strContent = strContent.replace(strRegEx, function(_, g1, g2) {
return g1 + (parseInt(g2) + numOffset);
});
console.log(strContent)
(?<=<ol start=")\d+(?=">)