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