js正则表达式多个转义字符的⽤法
我们都知道在js中遇到特殊字符要使⽤转义字符,但是如果多个转义字符同时出现的话,那⼜是怎么⽤的呢,我突发奇想,然后去⼀个⼀个的试了⼀下,最后终于把这个地⽅搞清楚了。
js中定义正则表达式有两种⽅法,这两种⽅法同样的正则表达式但是运⾏的结果可能是不相同的。
第⼀种,直接定义法:
var reg1 = /\d/g;
var str = '1';
console.st(str));
//返回true,说明此时reg1匹配的是\d,也就是数字
var reg1 = /\\d/g;
var str = '\\d';
console.st(str));
//返回true,说明此时reg1匹配的是字符串"\\d"
var reg1 = /\\\d/g;
var str = '\\1';
console.st(str));
//返回true,说明此时reg1匹配的是字符串"\\数字"
var reg1 = /\\\\d/g;
var str = '\\\\d';
console.st(str));
//返回true,说明此时reg1匹配的是字符串"\\\d"
第⼆种:构造函数⽅式:
var reg2 = new RegExp('\d','g');
var str = 'd';
console.st(str));
//返回true,说明此时reg2匹配的是字符"d"
var reg2 = new RegExp('\\d','g');
var str = '1';
console.st(str));
//返回true,说明此时reg2匹配的是字符"\d",即数字
var reg2 = new RegExp('\\\d','g');
var str = '1';
console.st(str));
//返回true,说明此时reg2匹配的是字符"\d",即数字
var reg2 = new RegExp('\\\\d','g');
var str = '\\d';
console.st(str));
//返回true,说明此时reg2匹配的是字符串"\\d"
var reg2 = new RegExp('\\\\\d','g');
var str = '\\d';
console.st(str));
//返回true,说明此时reg2匹配的是字符串"\\d"
var reg2 = new RegExp('\\\\\\d','g');
var str = '\\1';
console.st(str));
/
/返回true,说明此时reg2匹配的是字符串"\\数字"
var reg2 = new RegExp('\\\\\\\d','g');
var str = '\\1';
console.st(str));
//返回true,说明此时reg2匹配的是字符串"\\数字"
js正则表达式判断数字其实试了这么多,我们已经可以发现规律了,在⽤构造函数定义正则表达式的⽅式中,第⼀个\是表⽰转义字符,第⼆个是\本⾝,第三个⼜是转义字符,第四个是它本⾝,将整个字符串解析出来之后,得到的新字符串的意义就跟直接定义中的字符串⽤法是⼀样的了。
正则表达式匹配符结果根据解析之后的字符串中转义字符的个数有关,若\的个数为单数,则匹配的时候最后⼀个反斜杠与d⼀起匹配数字,前⾯的反斜杠也要加上。但是如果\的个数为双数,则直接匹配这⼀串字符串。
其实这个问题乍⼀看,哇,好多斜杠,好⿇烦,但是我们⼀点⼀点的去拆开就会发现,其实也没有那么困难,还挺简单的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论