JavaScript 中替换字符串的几种方法

开发 前端
替换字符串中的文本是 JavaScript 开发中的常见任务。本文研究几种用 replace 和正则表达式替换文本的方法。

替换字符串中的文本是 JavaScript 开发中的常见任务。本文研究几种用 replace 和正则表达式替换文本的方法。

[[346819]]

替换单个字串通常 JavaScript 的 String replace() 函数只会替换它在字符串中找到的第一个匹配的子符:

  1. const myMessage = 'this is the sentence to end all sentences'
  2. const newMessage = myMessage.replace('sentence', 'message'); 
  3. console.log(newMessage); // this is the message to end all sentences 

在这个例子中,仅替换了第一个 sentence 字串。

替换多个子串

如果希望 JavaScript 能够替换所有子串,必须通过 /g 运算符使用正则表达式:

  1. const myMessage = 'this is the sentence to end all sentences'
  2. const newMessage = myMessage.replace(/sentence/g, 'message'); 
  3. console.log(newMessage); // this is the message to end all messages 

这一次次两个子串都会被替换。

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

  1. const myMessage = 'this is the sentence to end all sentences'
  2. const newMessage = myMessage.replace(new RegExp('sentence', 'g'), 'message'); 
  3. console.log(newMessage); // this is the message to end all messages``` 

替换特殊字符

要替换特殊字符,例如 -/\^$*+?.()|[]{}),需要使用反斜杠对其转义。

如果给定字符串 this\-is\-my\-url,要求把所有转义的减号( \-)替换为未转义的减号(-)。

可以用 replace() 做到:

  1. const myUrl = 'this\-is\-my\-url'
  2. const newUrl = myMessage.replace(/\\-/g, '-'); 
  3. console.log(newUrl); // this-is-my-url 

或者用new Regexp():

  1. const myUrl = 'this\-is\-my\-url'
  2. const newUrl = myUrl.replace(new RegExp('\-', 'g'), '-'); 
  3. console.log(newUrl); // this-is-my-url 

在第二个例子中不必用反斜杠来转义反斜杠。

 

责任编辑:赵宁宁 来源: 前端先锋
相关推荐

2020-08-01 16:19:13

JavaScript字符串开发

2020-06-23 14:51:13

JavaScript字符字符串

2020-09-03 10:13:49

JavaScript字符串pad

2024-07-22 15:42:08

Linux字符串

2009-11-30 18:26:06

PHP字符串替换

2010-06-03 08:55:43

LINQ

2009-08-06 17:24:08

C#字符串

2020-08-24 08:05:47

JavaScriptJavaScript 页面

2021-03-02 12:29:34

字符串函数

2011-07-11 16:00:22

字符串拼接

2024-10-28 15:33:52

2010-07-14 16:37:33

SQL Server拆

2015-06-09 14:43:36

javascript操作字符串

2010-11-22 12:04:09

MySQL字段

2023-08-25 16:37:08

Pandas测试

2021-03-08 09:32:04

Python文件命令

2010-02-02 18:01:47

C++字符串替换函数

2010-09-02 10:02:17

PHP

2024-02-22 09:46:04

C++字符串格式化开发

2009-10-12 10:33:11

Javascript替
点赞
收藏

51CTO技术栈公众号