我尝试用标签用关键字替换文本,并从数组中删除使用的单词。
我的数组:
['Test', 'NodeJS', 'regex']
在这里,使用NodeJS进行测试以尝试正则表达式!
成为:
在这里,使用#NodeJS进行#Test尝试#Regex!
您能指导我如何使用NodeJS和正则表达式吗?
答案 0 :(得分:0)
您可以使用带有回调函数的reduce
,new RegExp
和replace
(用于将单词标记为已使用)进行
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”修饰符。