JS正则四个反斜杠的含义?

更新日期: 2019-04-07 阅读: 3.4k 标签: 含义

我们首先来看如下代码,在浏览器中输出的是什么?

// 在浏览器中输出的
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

本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!

链接: https://fly63.com/article/detial/2768

Html5标签——Html5新增标签的含义和使用

HTML 5 提供了一些新的元素和属性,反映典型的现代用法网站。其中有些是技术上类似nav和articled等标签,但有一定含义。

css的具体含义是什么?

CSS是Cascading Style Sheet的缩写,是一种叫做样式表(stylesheet)的技术。也有的人称之为层叠样式表(Cascading Stylesheet)。CSS主要用来设计网页的样式,美化网页;它不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!