文章标签 ‘js正则表达式’

javascript 正则表达式两种定义方式

2012年8月12日 没有评论

javascript中使用正则表达式有两种方式。第一种是构建一个RegExp对象;第二种是使用”//”来定义,也即perl风格。例如:

var str = 'http://www.netingcn.com/';

var reg = new RegExp('http', 'i');
alert(reg.test(str));
或
alert(/http/.test(str));

上述例子就是使用两种方式判断字符串str中是否包含http,注意第二种方式 // 一定不能使用引号。

第一种方式生成对象是参数为字符串,所以可以动态(字符串拼接)的设定正则表达式的内容,第二种则不行。我们知道,正则表达式中有很多特殊字符,例如.,*,?等等,如果表达式中就是需要匹配这些特殊字符,那么就需要使用转义符 “\”。特别要注意的是第一种处理转义符时候,需要使用两个“\”。例如:

var str = 'http://www.netingcn.com/';

var reg = new RegExp('www\\.', 'i');   //此处使用了两个 \
alert(reg.test(str));
或
alert(/www\./.test(str));

那为什么要使用 \\ 来转义呢?因为第一种方式“编译”后还是会变为第二种方式。例如alert(new RegExp(‘www\\.’, ‘i’)) 结果是 /www\./i 。

无觅相关文章插件,快速提升流量