替换匹配正则表达式的文本中的单词

时间:2017-09-28 14:07:26

标签: javascript

我正在尝试替换文本中与给定正则表达式匹配的所有单词。我做了一个看起来像这样的函数:

    const str   = this.node.body;
    const regex = /(href=\')([^\']*)(\')/g;
    let newStr;

    if (str.match(regex)) {
      for(let i = 0; i < str.match(regex).length; i++) {
        let url = str.match(regex)[i] + ' target="_blank"';
        newStr = str.replace(str.match(regex)[i], url);
      }
    }

但是,这是不对的,因为只有匹配字符串的最后一个值将被替换为newStr,因为在循环中总是从str变量中获取文本,我怎么能这样做我循环浏览了更新的newStr,并替换了与regex匹配的所有值?

1 个答案:

答案 0 :(得分:1)

这很好用

查看String.prototype.replace definition

const str   = this.node.body;
const regex = /(href=\')([^\']*)(\')/g;
let newStr = str.replace(/(href=\')([^\']*)(\')/g, '$& target="_blank"')