【www.bbyears.com--Perl】
javascript中使用正则表达式有两种方式。第一种是构建一个RegExp对象;第二种是使用”//”来定义,也即perl风格。例如:
代码如下var str = "http://www.111cn.net/";
var reg = new RegExp("http", "i");
alert(reg.test(str));
或
alert(/http/.test(str));
上述例子就是使用两种方式判断字符串str中是否包含http,注意第二种方式 // 一定不能使用引号。
第一种方式生成对象是参数为字符串,所以可以动态(字符串拼接)的设定正则表达式的内容,第二种则不行。我们知道,正则表达式中有很多特殊字符,例如.,*,?等等,如果表达式中就是需要匹配这些特殊字符,那么就需要使用转义符 “”。特别要注意的是第一种处理转义符时候,需要使用两个“”。例如:
代码如下var str = "http://www.111cn.net/";
var reg = new RegExp("www\.", "i"); //此处使用了两个
alert(reg.test(str));
或
alert(/www./.test(str));
那为什么要使用 \ 来转义呢?因为第一种方式“编译”后还是会变为第二种方式。例如alert(new RegExp(‘www\.’, ‘i’)) 结果是 /www./i 。