JS正则四个反斜杠的含义
2019-04-05 11:26 龙恩0707 阅读(7596) 评论(0) 编辑 收藏 举报我们首先来看如下代码,在浏览器中输出的是什么?
// 在浏览器中输出的 console.log('\\'); // 输出 \ console.log('\\\\'); // 输出 \\
一:js正则直接量语法对 反斜杠的含义
1.1 \. 一个反斜杠加点号(.)
var reg1 = /^\.$/g; console.log(reg1.test('.')); // 输出 true, 因为 \. 是对元字符.进行转义,因此匹配字符串中的. console.log(reg1.test('a')); // 输出false \. 转义后只能匹配字符串中的. ,不再是元字符匹配任意单个字符了
1.2 \\. 两个反斜杠加 (.)
在js正则表达式中,两个反斜杠加点号(.), 两个反斜杠会原样输出 \\ 字符串。元字符 . 匹配任意字符。
var reg2 = /^\\.$/g; console.log(reg2.test('\a')); // false console.log(reg2.test('\\a')); // true console.log(reg2.test('a')); // false console.log(reg2.test('\\ab')); // false console.log(reg2.test('\\.')); // true
1.3 \\\. 三个反斜杠和点号(.)
在js正则表达式中,三个反斜杠和 . ,前两个反斜杠匹配两个反斜杠,后面的 \. 是对元字符.号进行转义,因此只能匹配字符串中的 . 号,不能匹配任意一个字符。
var reg3 = /^\\\.$/g; console.log(reg3.test('\a')); // false console.log(reg3.test('\\.')); // true console.log(reg3.test('a')); // false console.log(reg3.test('\\a')); // false
1.4 \\\\. 四个反斜杠加点号(.)
在js正则表达式中,四个反斜杠匹配四个反斜杠,然后后面的点号是匹配任意的字符,除点之外。
var reg4 = /^\\\\.$/g; console.log(reg4.test('\\a')); // false console.log(reg4.test('\\\.')); // false console.log(reg4.test('\\\a')); // false console.log(reg4.test('\\\\a')); // true console.log(reg4.test('\\\\.')); // false console.log(reg4.test('\\aa')); // false
2. JS中RegExp对象对反斜杠的含义
2.1 两个反斜杠加点号(.)
两个反斜杠加点的含义是:全局匹配字符串中带有点号的。找到的话,就返回true,否则的话,返回false, 首先两个反斜杠在正则 RegExp,返回一个反斜杠 \.
因此一个 反斜杠 \. 就是对元字符 . 进行转义。因此只能匹配 . 号了。
如下代码:
var reg11 = new RegExp('\\.', 'g'); console.log(reg11); // 输出 /\./g console.log(reg11.test('.')); // true console.log(reg11.test('\.')); // false console.log(reg11.test('\a')); // false console.log(reg11.test('.a')); // true console.log(reg11.test('n.a')); // true
2.2 三个反斜杠加点号(.)
三个反斜杠和两个反斜杠的含义一样的。
var reg12 = new RegExp('\\\.', 'g'); console.log(reg12); // 输出 /\./g console.log(reg12.test('.')); // true console.log(reg12.test('\.')); // false console.log(reg12.test('\a')); // false console.log(reg12.test('.a')); // true console.log(reg12.test('n.a')); // true
2.3 四个反斜杠加点号(.)
四个反斜杠加点号的含义是:在RegExp对象后,会返回 /\\./g, 然后是匹配字符串 \\ , 点号(.) 是元字符匹配任意的字符。
var reg12 = new RegExp('\\\\.', 'g'); console.log(reg12); // 输出 /\\./g console.log(reg12.test('.')); // false console.log(reg12.test('\.')); // false console.log(reg12.test('\a')); // false console.log(reg12.test('.a')); // false console.log(reg12.test('n.a')); // false console.log(reg12.test('\\a')); // true console.log(reg12.test('\\aaaa')); // false console.log(reg12.test('\\.')); // true
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
2018-04-05 vue 实现tab切换动态加载不同的组件