介绍
替换字符串中的文本是 JavaScript 中的一项常见任务。在本文中,您将了解使用replace
正则表达式替换文本。
注意:请 访问此配套教程,详细了解如何使用grep
正则表达式在 Linux 中搜索文本模式。
先决条件
- 熟悉 Javascript 编程语言。访问我们的教程系列,如何在 Javascript 中编码,了解基础知识。
替换单个实例
通常 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
在第二个示例中,您不必使用反斜杠来转义反斜杠。
结论
在本文中,您了解了如何替换单个实例、多个实例以及如何处理带有特殊字符的字符串。