共计 1592 个字符,预计需要花费 4 分钟才能阅读完成。
作者:Chris On Code
翻译:疯狂的技术宅
原文:https://www.digitalocean.com/…
未经容许严禁转载
替换字符串中的文本是 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
在第二个例子中不用用反斜杠来本义反斜杠。
你还晓得哪些办法,请留言通知大家。
本文首发微信公众号:前端先锋
欢送扫描二维码关注公众号,每天都给你推送陈腐的前端技术文章
欢送持续浏览本专栏其它高赞文章:
- 深刻了解 Shadow DOM v1
- 一步步教你用 WebVR 实现虚拟现实游戏
- 13 个帮你进步开发效率的古代 CSS 框架
- 疾速上手 BootstrapVue
- JavaScript 引擎是如何工作的?从调用栈到 Promise 你须要晓得的所有
- WebSocket 实战:在 Node 和 React 之间进行实时通信
- 对于 Git 的 20 个面试题
- 深刻解析 Node.js 的 console.log
- Node.js 到底是什么?
- 30 分钟用 Node.js 构建一个 API 服务器
- Javascript 的对象拷贝
- 程序员 30 岁前月薪达不到 30K,该何去何从
- 14 个最好的 JavaScript 数据可视化库
- 8 个给前端的顶级 VS Code 扩大插件
- Node.js 多线程齐全指南
- 把 HTML 转成 PDF 的 4 个计划及实现
- 更多文章 …
正文完
发表至: javascript
2020-11-02