替换字符串中的文本是 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. 安装wxpython——python程序GUI图形界面使用
  2. 12位黄金技术大佬发出警告:一大波必读好书向你袭来!
  3. MATLAB实战系列(十九)-遗传算法解决TSP(旅行商)问题-应用及解析(文末附MATLAB源码)
  4. ITK:从给定的seeds创建距离图
  5. loading怎么关闭 vant_vant-ui组件调用Dialog弹窗异步关闭操作
  6. python模块里的函数及说明,Python模块 time与datetime模块的函数说明及使用实例
  7. 数学建模学习笔记(十一)——预测模型
  8. python安装完毕后,提示找不到ssl模块的解决步骤
  9. 安装floodlight遇到的问题和解决
  10. 069 模块基础总结
  11. 染用计算机语言,着色器语言
  12. 基于行为树的高级游戏AI教程
  13. Command ‘docker‘ not found, but can be installed with:
  14. (14.1)Zotero常用功能:插件、导入题录、参考文献
  15. app android切图工具,小白自学APP切图:APP切图工具Cutterman的参数设置
  16. ajax异步提示对号,jQuery Ajax显示对号和错号用于验证输入验证码是否正确
  17. php加速模块cpan模块,查看perl模块和cpan模块介绍
  18. 奔跑吧DKY——团队Scrum冲刺阶段-Day 4
  19. idea 2020.1 连接MySQL数据库的两种方法
  20. coco训练集darknet_darknet-yolov3训练自己的数据集

热门文章

  1. js静态页面间的传值
  2. 网络上收集的有关七田真1000幅图训练方法
  3. 《以C语言解析电脑》书评
  4. cmd停止nginx服务
  5. JavaScript的入门学习
  6. OKHTTP3自定义CookieJar和及Cookie持久化
  7. input输入框赋值、取值
  8. c语言文件操作字符,C语言文件操作
  9. svn报错:浠ュ墠鐨勬搷浣滄病鏈夊畬鎴愶紱濡傛灉瀹冭涓柇锛岃鎵ц鈥渟vn cleanup鈥?
  10. transformer xl 用于文本生成