day-17.2 定义正则表达式
什么叫正则表达式;
var r1 = /haha/ ;
var r 2 = new RegExp("haha");
从上述表达式可以看出,正则表达式,其实就是一个实例一个写好正则函数和规则的对象的表达式;
1 <script> 2 var str = "haha123213"; 3 var r1 = /haha/; 4 var r2 = new RegExp("haha"); 5 console.log(r1.test(str)); //true 6 console.dir(r1); //输出对象的内容一样 7 console.log(r2.test(str)); //true 8 console.dir(r2); //输出对象的内容一样 9 </script>
从上述例子可以看出,无论是用 /“haha”/还是 new RegExp()实例的正则对象都是一样的,
区别就是
1:引用, //定义的正则规则不能引用变量,//里的参数只能是常量,而 new RegExp可以引用变量;
1 var a = "haha"; 2 var r1 = /a/; //正则的参数只能是常量a; 3 var r2 = new RegExp(a); //正则的参数是变量a,即"haha";
2:特殊符号,当new RegExp();里的参数是特殊符号时,要转义才能传参,而//不需要;;
1 var reg1 = /\d/; 2 var reg2 = new RegExp("\d");//这样写是不行的,虽然匹配规则是\d,但是 这里写的时候\当成一个转义符处理了,匹配的时候的参数就会认为是d,所以要写成\\d,才行; 3 var reg3 = new RegExp("\\d");// 第一个\对第二个\进行转义保留,这样子匹配的函数调用的时候传进去的参数就是\d
\d是一种匹配规则的特殊写法,后面再介绍;
浙公网安备 33010602011771号