js正则表达式的斜杠
一个斜杠加上一个字母的形式,称为转义字符。为什么会有转义字符这个东西呢?因为我们的键盘很小,没法把所有的字符(包括特殊字符)全部排列在有限的空间里。因此如果我们想要使用这些特殊的字符,就得使用转义字符进行转义。可以理解为转义字符(斜杠+键盘上某个可见字符)被映射成了一个特殊字符。
如何在正则表达式中正确使用转义字符(也就是题目中说的斜杠)是一个比较容易犯错的地方。
下面以匹配空格为例进行说明。
如果我们想匹配空格,得使用元字符'\s'。
但是,我们不能直接在代码中使用'\s',因为'\s'会被js解释器转义,导致new RegExp()真正接收到的参数是's',而不是'\s'。
(至于为啥转义字符'\s'映射的是字符's',我想可能是js解释器里面就是没有给'\s'安排一个特殊字符吧。而像'\b'映射的特殊字符是'','\n'映射的是一个换行符)。
var r = new RegExp('\s'); var s = " "; console.log(s.match(r));// null
为了让new RegExp()接收到的是'\s',我们应该对'\'进行转义:
var r = new RegExp('\\s'); var s = " "; console.log(s.match(r));// [" ", index: 0, input: " ", groups: undefined]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?