我正在尝试替换文本中与给定正则表达式匹配的所有单词。我做了一个看起来像这样的函数:
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
匹配的所有值?
答案 0 :(得分:1)
这很好用
查看String.prototype.replace definition
const str = this.node.body;
const regex = /(href=\')([^\']*)(\')/g;
let newStr = str.replace(/(href=\')([^\']*)(\')/g, '$& target="_blank"')