JS正则四个反斜杠的含义

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

// 在浏览器中输出的
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://www.cnblogs.com/tugenhua0707/p/10658274.html

时间: 2024-10-01 02:51:17

JS正则四个反斜杠的含义的相关文章

java 和 JS(javaScript)中的反斜杠正则转义

首先说下为什么要转义.在正则中有些字符有特殊含义的,比方说 * 可以前一子表达式的任意次,. 表示除"\r\n"之外的任何单个字符,+ 表示前一子表达式的一次或多次,等.而在有些情况下,需要正则验证这些字符,比方说要验证加减乘除四个运算符号,为了告诉编译器,你要验证的是一个字符而不是正则表达式,就要对这些有特殊含义的字符进行转义,这样就有了转义这一操作. 在java 和javascipt中,都是用反斜杠"\"进行转义,然后两种语言的用法不尽相同,下面举例说明: 1.

正则表达式匹配反斜杠——匹配一个反斜杠要用四个反斜杠

正则表达式中匹配一个反斜杠要用四个反斜杠,为什么呢? 分析一下"\\\\",第一个斜杠是转义符,第二个斜杠是斜杠本身,第三个斜杠是转义符,第四个斜杠是斜杠本身. 有2点要清楚: 1.字符串里面表示斜杠就需要两个斜杠如"\\" 2.正则表达式里的斜杠需要转意,是用"\\"标示. 这样就比较好解释: 我们先要表示正则表达式里面的斜杠"\\",然后再用字符串表示出来.而这2个斜杠分别需要一个转义符,这样就成了4个斜杠在正则表达式里面

正则表达式 反斜杠的匹配 2018-11-30

问题引入: 在学习正则表达式的过程中,遇到了一直无法正确匹配反斜杠\,初始使用的是下面两种方法: 使用普通字符串,匹配一个反斜杠,需要再用一个反斜杠来转义:\\ 使用带r的原始字符串,这样就不用再转义:r'\' 使用上面两种方法一直无法匹配 4\5 中的反斜杠,最终经过查询,发现自己理解错误,字符串存在转义,正则也存在转义 1. 字符串转义: 在字符串中,我们会用一反斜杠加特定的字符来表达一些特定的功能,比如,\n表示换行,\"表示双引号等等,而如果要输出反斜杠本身,则用\\如下所示: >

JS中的反斜杠 (\)是什么意思

JS中的反斜杠 (\)是什么意思 在js中我们经常能看到“\”.让人有一种看不懂的错觉.那么,为什么本来正常的代码,要加上反斜杠呢,他的作用是什么呢 我们先来看一段代码 var txt="We are the so-called \"Vikings\" from the north." document.write(txt) 在 JavaScript 中,字符串使用单引号或者双引号来起始或者结束.这意味着上面的字符串将被截为:We are the so-called

PHP正则反斜杠的讲究

今天看了一篇文章说下自己的理解 文章地址:https://www.t00ls.net/articles-55906.html 先看一段代码,看起来很正常,但是实际上这段代码会报错! if(preg_match("#\\\\|\\#i",$cmd,$match)){ var_dump($match); echo ("forbid~"); } 它会报错,报错的信息是 结束分隔符 不存在,这里指的 结束分隔符 实际上在PHP正则中就是 定界符 ! 再看这段,只是前后换了下

python 正则表达式中反斜杠(\)的麻烦和陷阱

这里是一点小心得:由于下面两个原因,在正则表达式中使用反斜杠就会产生了一个双重转换的问题.(1).python自身处理字符串时,反斜杠是用于转义字符 (2).正则表达式也使用反斜杠来转义字符     要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为在正则表达式中,"\\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\\\"三个肯定是不行的,试试四

python 正则表达式中反斜杠(\)的麻烦和陷阱 (转)

这里是一点小心得:由于下面两个原因,在正则表达式中使用反斜杠就会产生了一个双重转换的问题.(1).python自身处理字符串时,反斜杠是用于转义字符 (2).正则表达式也使用反斜杠来转义字符     要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为在正则表达式中,"\\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\\\"三个肯定是不行的,试试四

关于Python中正则表达式的反斜杠问题

之前总是搞不明白正则表达式中的反斜杠的问题.今天经过查阅资料终于搞明白了. 其中最重要的一点就是Python自己的字符串中定义的反斜杠也是转义字符,而正则表达式中的反斜杠也是转义字符,所以正则表达式中反斜杠会涉及到双重转换的问题. 要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为"\\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\\\"三个肯定

java反斜杠替换

java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠 例如 str1="aa\bbb"; str2="aa'bbb"; 要想替换成 str1="aa\\bbb";str2="aa\'bbb"; 必须这样替换: str1 = str1.replaceAll("\\\\", "\\\\\\\\"); str2 = str2.replaceAll("'"