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]
posted @   hdxg  阅读(7086)  评论(0编辑  收藏  举报
编辑推荐:
· .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 中如何实现缓存的预热?
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css
点击右上角即可分享
微信分享提示