如何在 JavaScript 中替换字符串的所有实例

介绍

替换字符串中的文本是 JavaScript 中的一项常见任务。在本文中,您将了解使用replace正则表达式替换文本。

注意:请 访问此配套教程,详细了解如何使用grep正则表达式在 Linux 中搜索文本模式

先决条件

替换单个实例

通常 JavaScript 的String replace()函数只替换它在字符串中找到的第一个实例:

应用程序.js
const myMessage = 'this is the sentence to end all sentences';
const newMessage = myMessage.replace('sentence', 'message');
console.log(newMessage); // this is the message to end all sentences

在此示例中,仅sentence替换了第一个实例

替换多个实例

如果您希望 JavaScript 替换所有实例,则必须使用使用/g运算符的正则表达式

应用程序.js
const myMessage = 'this is the sentence to end all sentences';
const newMessage = myMessage.replace(/sentence/g, 'message');
console.log(newMessage); // this is the message to end all messages

这次两个实例都被更改了。

除了使用 inline 之外/g,还可以使用RegExp对象的构造函数

应用程序.js
const myMessage = 'this is the sentence to end all sentences';
const newMessage = myMessage.replace(new RegExp('sentence', 'g'), 'message');
console.log(newMessage); // this is the message to end all messages

替换特殊字符

要替换像 那样的特殊字符-/\^$*+?.()|[]{}),我们需要使用反斜杠来转义它们。

这是一个例子。给定字符串this\-is\-my\-url,让我们\-用未转义的破折号 ( -)替换所有转义的破折号 ( )。

你可以这样做replace()

应用程序.js
const myUrl = 'this\-is\-my\-url';
const newUrl = myMessage.replace(/\\-/g, '-');
console.log(newUrl); // this-is-my-url

或者,使用new Regexp()

应用程序.js
const myUrl = 'this\-is\-my\-url';
const newUrl = myUrl.replace(new RegExp('\-', 'g'), '-');
console.log(newUrl); // this-is-my-url

在第二个示例中,您不必使用反斜杠来转义反斜杠。

结论

在本文中,您了解了如何替换单个实例、多个实例以及如何处理带有特殊字符的字符串。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁