JS正则四个反斜杠的含义
我们⾸先来看如下代码,在浏览器中输出的是什么?
// 在浏览器中输出的
console.log('\\'); // 输出 \
console.log('\\\\'); // 输出 \\
⼀:js正则直接量语法对反斜杠的含义
1.1 \. ⼀个反斜杠加点号(.)
var reg1 = /^\.$/g;
console.st('.')); // 输出 true, 因为 \. 是对元字符.进⾏转义,因此匹配字符串中的.
console.st('a')); // 输出false \. 转义后只能匹配字符串中的. ,不再是元字符匹配任意单个字符了
1.2 \\. 两个反斜杠加 (.)
在js正则表达式中,两个反斜杠加点号(.), 两个反斜杠会原样输出 \\ 字符串。元字符 . 匹配任意字符。
var reg2 = /^\\.$/g;
console.st('\a')); // false
console.st('\\a')); // true
js中文正则表达式console.st('a')); // false
console.st('\\ab')); // false
console.st('\\.')); // true
1.3 \\\. 三个反斜杠和点号(.)
在js正则表达式中,三个反斜杠和 . ,前两个反斜杠匹配两个反斜杠,后⾯的 \. 是对元字符.号进⾏转义,因此只能匹配字符串中的 . 号,不能匹配任意⼀个字符。
var reg3 = /^\\\.$/g;
console.st('\a')); // false
console.st('\\.')); // true
console.st('a')); // false
console.st('\\a')); // false
1.4 \\\\. 四个反斜杠加点号(.)
在js正则表达式中,四个反斜杠匹配四个反斜杠,然后后⾯的点号是匹配任意的字符,除点之外。
var reg4 = /^\\\\.$/g;
console.st('\\a')); // false
console.st('\\\.')); // false
console.st('\\\a')); // false
console.st('\\\\a')); // true
console.st('\\\\.')); // false
console.st('\\aa')); // false
2. JS中RegExp对象对反斜杠的含义
2.1 两个反斜杠加点号(.)
两个反斜杠加点的含义是:全局匹配字符串中带有点号的。到的话,就返回true,否则的话,返回false, ⾸先两个反斜杠在正则 RegExp,返回⼀个反斜杠 \.
因此⼀个反斜杠 \. 就是对元字符 . 进⾏转义。因此只能匹配 . 号了。
如下代码:
var reg11 = new RegExp('\\.', 'g');
console.log(reg11); // 输出 /\./g
console.st('.')); // true
console.st('\.')); // false
console.st('\a')); // false
console.st('.a')); // true
console.st('n.a')); // true
2.2 三个反斜杠加点号(.)
三个反斜杠和两个反斜杠的含义⼀样的。
var reg12 = new RegExp('\\\.', 'g');
console.log(reg12); // 输出 /\./g
console.st('.')); // true
console.st('\.')); // false
console.st('\a')); // false
console.st('.a')); // true
console.st('n.a')); // true
2.3 四个反斜杠加点号(.)
四个反斜杠加点号的含义是:在RegExp对象后,会返回 /\\./g, 然后是匹配字符串 \\ ,点号(.) 是元字符匹配任意的字符。var reg12 = new RegExp('\\\\.', 'g');
console.log(reg12); // 输出 /\\./g
console.st('.')); // false
console.st('\.')); // false
console.st('\a')); // false
console.st('.a')); // false
console.st('n.a')); // false
console.st('\\a')); // true
console.st('\\aaaa')); // false
console.st('\\.')); // true
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论