我有一个包含模式*|TEST|*
的合并标记的字符串我需要用HURRAY
替换所有这些标记。
我的代码仅替换了字符串中的第一个匹配,但其余的则没有。我试图了解如何使用RegExp进行匹配以替换字符串中的所有匹配项。
const content = "*|TEST|* something else *|TEST|*";
const str = "TEST";
console.log(content.replace(`\*\|${str}\|\*`, "HURRAY"));
答案 0 :(得分:1)
在正则表达式中,您可以使用/g
标志来获取某个字符串的所有匹配项。你在最后一个斜线之后设置它。
例如,/myregex/g
匹配字符串中的所有myregex。在您的情况下,/\*\|TEST\|\*/g
将匹配所有实例,或使用RegExp构造函数
new RegExp(`\\*\\|${str}\\|\\*`, "g")
答案 1 :(得分:0)
使用正则表达式,使用'g'修饰符(指示正则表达式在第一次匹配后继续查看)。
const content = "*|TEST|* something else *|TEST|*";
const str = "TEST";
console.log(content.replace(/\*\|(\w+)\|\*/g, "HURRAY"));