假设我们有一个变量,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中的一个工作例子。