我想用一个单词替换单个字符串中的多个单词。我试过了,但第一个词就是替换。
这是代码。
function addReplacement(text: string): string
{
return text.replace(/bdrinkb/g || /bteab/g ,'****')
}
输入字符串:I like to drink a cup of tea.
输出:I like to **** a cup of tea.
我想要的是:I like to **** a cup of ****.
如何做到这一点?请帮忙。
||
运算符只会返回左侧,因为正则表达式在javascript中是一个truthy值。||
运算符用于对布尔值进行运算。
你想要的是一个匹配单词边界的正则表达式,然后是饮料或茶,然后是另一个单词边界。键入如下:
function addReplacement(text: string): string {
return text.replace(/b(drink|tea)b/g ,'****')
}
正则表达式中的括号是一个组,|
是OR运算符。
游乐场链接
您也可以使用双替换而不是双管!
function addReplacement(text: string): string
{
return text.replace(/bdrinkb/g ,'****').replace(/bteab/g ,'****')
}
工作版本应该是
text.replace(/s[drink|tea]s/g ,'****')
问题出在正则表达式中,您希望在正则表达式内使用或|
,而不是传递"一个或另一个正则表达式";
text.replace(/b(drink|tea)b/g,'****')