作者: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个计划及实现
- 更多文章...