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