正则表达式替换文本数组中的标签

时间:2019-02-27 18:23:13

标签: node.js regex

我尝试用标签用关键字替换文本,并从数组中删除使用的单词。

我的数组:

['Test', 'NodeJS', 'regex']
  

在这里,使用NodeJS进行测试以尝试正则表达式!

成为:

  

在这里,使用#NodeJS进行#Test尝试#Regex!

您能指导我如何使用NodeJS和正则表达式吗?

1 个答案:

答案 0 :(得分:0)

您可以使用带有回调函数的reducenew RegExpreplace(用于将单词标记为已使用)进行

var tags = ['Test', 'NodeJS', 'notfound', 'regex']
var s = "Here, test with NodeJS to try regex !";

s = tags.reduce((acc, tag, i) => 
    acc.replace(new RegExp("\\b" + tag + "\\b", "gi"), () => {
        tags[i] = null;
        return "#" + tag;
    }), s);
tags = tags.filter(Boolean);
console.log(s);
console.log(tags);

如果您的数组包含需要转义的带有特殊字符的字符串,请首先按照this Q&A中的说明进行转换。

如果您只想替换 first 出现的特定标签,请删除“ g”修饰符。