js正則表達式的斜杠


一個斜杠加上一個字母的形式,稱為轉義字符。為什么會有轉義字符這個東西呢?因為我們的鍵盤很小,沒法把所有的字符(包括特殊字符)全部排列在有限的空間里。因此如果我們想要使用這些特殊的字符,就得使用轉義字符進行轉義。可以理解為轉義字符(斜杠+鍵盤上某個可見字符)被映射成了一個特殊字符。

 

如何在正則表達式中正確使用轉義字符(也就是題目中說的斜杠)是一個比較容易犯錯的地方。

 

下面以匹配空格為例進行說明。

如果我們想匹配空格,得使用元字符'\s'。

但是,我們不能直接在代碼中使用'\s',因為'\s'會被js解釋器轉義,導致new RegExp()真正接收到的參數是's',而不是'\s'。

(至於為啥轉義字符'\s'映射的是字符's',我想可能是js解釋器里面就是沒有給'\s'安排一個特殊字符吧。而像'\b'映射的特殊字符是'','\n'映射的是一個換行符)。

var r = new RegExp('\s');
var s = "  ";
console.log(s.match(r));// null

 

為了讓new RegExp()接收到的是'\s',我們應該對'\'進行轉義:

var r = new RegExp('\\s');
var s = "  ";
console.log(s.match(r));// [" ", index: 0, input: "  ", groups: undefined]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM