我想在调用函数后用其他字符串替换正则表达式匹配的 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
}
注意:我不想使用 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);
引用 Specifying a function as a parameter对于
String.prototype.replace
方法。
关于javascript正则表达式执行和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23833597/