JS正則四個反斜槓的含義

咱們首先來看以下代碼,在瀏覽器中輸出的是什麼?正則表達式

// 在瀏覽器中輸出的
console.log('\\'); // 輸出 \
console.log('\\\\'); // 輸出 \\

一:js正則直接量語法對 反斜槓的含義瀏覽器

1.1  \. 一個反斜槓加點號(.) spa

var reg1 = /^\.$/g; 
console.log(reg1.test('.')); // 輸出 true, 由於 \. 是對元字符.進行轉義,所以匹配字符串中的.
console.log(reg1.test('a')); // 輸出false \. 轉義後只能匹配字符串中的. ,再也不是元字符匹配任意單個字符了

1.2  \\.  兩個反斜槓加 (.)code

在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  \\\. 三個反斜槓和點號(.)blog

在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 \\\\. 四個反斜槓加點號(.)console

在js正則表達式中,四個反斜槓匹配四個反斜槓,而後後面的點號是匹配任意的字符,除點以外。class

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對象對反斜槓的含義test

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
相關文章
相關標籤/搜索