如何在打字稿中用单个单词替换多个单词



我想用一个单词替换单个字符串中的多个单词。我试过了,但第一个词就是替换。

这是代码。

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,'****')

最新更新