首页 > 其他 > 详细

当以一个字符串为正则表达式时

时间:2015-12-16 15:25:00      阅读:118      评论:0      收藏:0      [点我收藏+]

反斜杠在正则表达式中是转义的,\b,\t,\s等都是有其含义,但是在字符串中

我们不能把它和在正则中完全的一样对待。

比如/\s12\s/这个正则匹配的是开头空白,中间12,后边是空白的字符串,

但是如果写成"\s12\s"就不行了,需要写成"\\s12\\s",

但是"\t12\t" 就等于 /\t12\t/ 就等于 "\\t12\\t",

所以在字符串中最好用双反斜杠,要不很容易会出现问题。

包括\b和\d也是不一样的。说白了,就是字符串的正则和//这个的正则还是有些不一样的

var reg1 = new RegExp("\dls\d");
console.log(reg1);
var reg2 = new RegExp("\bls\b");
console.log(reg2);

 

//var reg2 = new RegExp("\tls\t");
//console.log(reg2);

/*
var reg1 = new RegExp(/\bls\b/);
var reg2 = new RegExp("\s+ls\s+");
var reg3 = new RegExp("\\s+ls\\s+");
console.log(reg1);
console.log(reg2);
console.log(reg3);
var str = "dfads+lss+dfsa";
alert(reg1.test(str));
alert(reg2.test(str));
alert(reg3.test(str));

var reg4 = new RegExp(/s+lss+/);
console.log(reg4);
var str2 = "dfads+lss+dfsa";
var str3 = "ablsdfsa";
alert(reg4.test(str2));
alert(reg4.test(str3));

var reg5 = new RegExp(/s\+lss\+/);
console.log(reg5);
alert(reg5.test(str2));
alert(reg5.test(str3));
*/

当以一个字符串为正则表达式时

原文:http://www.cnblogs.com/king-bj/p/5051031.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!