学习编程语言的时候,经常碰到需要对字符转义的情况,有时候自己会把一些知识点搞混,特以此文记录,持续更新。
先看一个小例子,要写一个正则匹配像‘010-12345‘这样的电话号码,由于‘-‘是特殊字符,在正则表达式中,要用‘\‘转义,所以,上面的正则是\d{3}\-\d{3,8}。如果不用‘\‘转义,则‘-‘就成正则里范围的意思。
以上这个小例子讲了为什么要转义。
另外,js里的字符串也有一些需要转义的字符字面量,详见高程33页。平时用的比较多的是对‘\\‘ ,‘\‘‘ ,‘\‘‘‘以及‘\unnnn‘。以下两个正则表达式是一样的,
var re1 = /ABC\-001/;
var re2 = new RegExp(‘ABC\\-001‘);
通过new RegExp创建的正则因为变量是字符串,所以需要先对\进行一次转义,若不先对\进行一次转义,写成new RegExp(‘ABC\-001‘),js引擎会用字符串转义的规则用‘\‘对‘-‘进行转义,而js字符里并不需要对‘-‘转义,此时会有问题。
时间: 2024-11-11 02:14:07