在JavaScript中替换一个字符串在另一个字符串中的多个实例

42 阅读1分钟

假设我们有一个变量,text ,分配给一个string

let text = "the cat sat on the mat";

我们想把**"the "这个词替换成"no "这个词。**

一个JavaScriptstring 有一个很好的 replace方法,我们可以用它来做这件事。所以,让我们试一试吧。

text = text.replace("the", "no");

text 变量现在包含的值是**"没有猫坐在垫子上"。这也许不是我们所希望的--只有第一个"the "**被替换了。

replace 方法中的第一个参数实际上可以是一个正则表达式,我们可以用它来指定我们要替换所有匹配的词的实例。

text = text.replace(/the/g, "no");

正则表达式末尾的g 告诉replace 方法去匹配所有的实例。

因此,text 变量现在包含的值是**"没有猫坐在没有垫子上"。很好--我们成功地将"the "的所有实例替换成了"no"!**

现在让我们看一个稍微不同的例子。

let text = "The cat sat on the mat";

同样,我们想用**"不 "来替换 "the"的所有实例然而,这一次"the "的两个实例是在不同的情况下--"The ""the"。**

因此,只需做以下工作。

text = text.replace(/the/g, "no");

...将得到**"猫没有坐在垫子上"。**

这并不是我们想要的结果。

解决方法很简单。

text = text.replace(/the/gi, "no");

我们对正则表达式进行了扩展,用i 指定了一个不区分大小写的匹配。

因此,text 变量现在包含了**"没有猫坐在没有垫子上 "的值。**

很好!

下面是CodePen中的一个工作例子。

打开工作实例