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

替换单个字串

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

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 运算符使用正则表达式:

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

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

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

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() 做到:

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

或者用new Regexp():

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

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

Js替换字符串的几种方法相关推荐

  1. JS截取字符串的三种方法详解

    本文详细讲解了JS截取字符串的三种方法,文中通过示例代码介绍的非常详细.对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 JS提供三个截取字符串的方法,分别是:slice(),subst ...

  2. JS截取字符串(3种方法)

    String 定义了 3 个字符串截取的原型方法,说明如表所示. String 类型的截取字符串方法 字符串方法 说明 slice() 抽取一个子串 substr() 抽取一个子串 substring ...

  3. bat替换文件中的字符串_JavaScript 中替换字符串的几种方法

    // 每日前端夜话 第418篇// 正文共:700 字// 预计阅读时间:5 分钟 替换字符串中的文本是 JavaScript 开发中的常见任务.本文研究几种用 replace 和正则表达式替换文本的 ...

  4. java js 截取字符串,js截取字符串的三种方法

    JS提供三个截取字符串的方法,分别是:slice(),substring()和substr(),它们都可以接受一个或两个参数: var stmp = "rcinn.cn";使用一个 ...

  5. linux shell 替换字符串的几种方法,变量替换${},sed,awk

    变量a是一个带空格的字符串,现在用"hdpusr400"替换变量a中的"hduser302": [liusiyi@localhost ~]$ echo $a - ...

  6. shell 替换字符串的几种方法,变量替换${},sed,awk

    变量a是一个带空格的字符串,现在用"hdpusr400"替换变量a中的"hduser302": 1 [liusiyi@localhost ~]$ echo $a ...

  7. linux替换变量字符串,linux shell 替换字符串的几种方法,变量替换${},sed,awk

    变量a是一个带空格的字符串,现在用"hdpusr400"替换变量a中的"hduser302": [liusiyi@localhost ~]$ echo $a - ...

  8. js截取字符串的三种方法

    substring() 方法 substr() 方法 slice() 方法 1.substring() 方法,substirng(from,to)方法从from位置截取到to位置,to可选,没有设置时 ...

  9. js 截取字符串的三种方法

    方法1:substring() 方法 string.substring(from, to) 方法从 from 位置截取到 to 位置,to 可选,没有设置时默认到末尾. <!DOCTYPE ht ...

最新文章

  1. git revert 用法
  2. 第一夜 主公说啥俺做啥
  3. cuda编程python接口_混合编程[python+cpp+cuda]
  4. java list 区别_Java中List和ArrayList的区别
  5. 【原创】rabbitmq-echopid用户手册(翻译)
  6. JQuery的父、子、兄弟节点查找,节点的子节点循环
  7. 2021年浏阳市五中高考成绩查询,浏阳市2021年“三考”增加考生万余名
  8. HTTP代理怎样使用
  9. java exchange类,JAVA5---Exchange使用
  10. 自定义桌面图标!制作属于自己的个性化桌面吧(=^x^=)
  11. 林子雨大数据技术原理与运用期末复习
  12. 数字功放-耐福NTP功放芯片详细性能概述
  13. pythonQQ机器人系列:使用requests实现QQ机器人聊天(1-0)
  14. 非平衡电桥电阻计算_非平衡电阻电桥等效电阻的初等解析
  15. 2019年未来软件工作室年会总结
  16. 利用python实现深度学习生成对抗样本模型,为任一图片加扰动并恢复原像素的全流程记录
  17. 如何健壮你的后端服务?
  18. 解决Intellij idea 修改控制台的字体样式问题
  19. Word排版技巧笔记
  20. windows如何修改盘符,提示无法修改怎么办?

热门文章

  1. YOLOV5识别图标点选验证码
  2. 单片机c语言左移的作用,单片机C语言移位的实现
  3. php 获取带http或https的域名
  4. 诊所预约就医信息管理系统java_社区医院预约系统
  5. scatter函数绘制散点图——MATLAB
  6. nth_element的用法
  7. Android 显示不满屏的问题解决
  8. vue的this指向详解
  9. 功能性模块:(8)一文理解常用激活函数(Sigmoid,ReLU,ELU,GELU...)
  10. C++中“;”分号的使用