javascript正则表达式执行和替换

标签 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
             }

注意:我不想使用 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/

相关文章:

R正则表达式匹配直到最后一个点

python - 正则表达式 - 在第一个逗号之前获取所有内容 - python

javascript - 在 Angularjs ui-router 中获取以前的位置

javascript - 使用浏览器后退按钮时,请记住该部分的折叠/展开状态

javascript - 这是 v-on :change? 的正确用法吗

javascript - 如果我有线性渐变,则更改滚动上的颜色背景

javascript - 从组中获取选定的单选按钮

javascript - 从四面八方增加圆圈 CSS

regex - 使用 Perl 捕获输出,直到找到特定模式

正则表达式仅允许大写扩展 ASCII