javascript 正则表达式 执行和替换

shr*_*hrw 5 javascript regex

我想在调用函数后将正则表达式匹配的 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 将一次又一次地替换第一个。

Ahm*_*eed 3

看起来您正在尝试将组值的长度附加到匹配中。如果是这种情况,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