我想在调用函数后将正则表达式匹配的 str 替换为其他字符串。找不到任何相同的方法..
考虑
var str = "someRegex ajfgdgkjdljlgdgjlrm someRegeeeeex dfdsfj";
var re = /someReg(.*?)x/g;
while ((m = re.exec(str)) != null) {
// m= ["someRegex", "e"]
// m= ["someRegeeeeex", "eeeee"]
// I WANT TO REPLACE THE MATCHED WITH AFTER CALLING A FUNCTION
// lets say someRegex with someRegex1 and someRegeeeeex with someRegeeeeex5
}
Run Code Online (Sandbox Code Playgroud)
注意:我不想使用 str Replace 因为它不会给我正确的解决方案。可以说用 someRegex1 替换 someRegex ,用 someRegeeeeex5 替换 someRegeeeeex 。使用 str.replace 将一次又一次地替换第一个。
看起来您正在尝试将组值的长度附加到匹配中。如果是这种情况,replace可以与函数一起使用:
var str = "someRegex ajfgdgkjdljlgdgjlrm someRegeeeeex dfdsfj";
var re = /someReg(.*?)x/g;
var result = str.replace(re, function(match, group) {
return match + group.length;
});
console.log(result);
Run Code Online (Sandbox Code Playgroud)
请参阅指定函数作为方法的参数String.prototype.replace。