上次写了js正则的字面量声明,今天说说RegExp()构造函数声明:
var p=/cat/g; //字面量声明
var p=new RegExp('cat','g') //构造函数声明
它两所表达的意思是一样的,看看写法有啥不同,一个用 // ; 一个用 “” ;
String支持正则表达式的方法 match():
正则表达式方法 exec():
看过我前面写的字面量声明的人肯定知道使用字面量声明和构造函数声明的区别就是表达式不一样;其它的都没改动;下面再说一下重要的一点 \ 其功能是转义特殊字符
var p=/b.t/ //匹配b*t 中间*可以是任何字符
var p=/b/.t/ //匹配 b.t 字符串
加了 \ 在正则中 . (通配符)就变成了字符串“.”
在构造函数里要匹配字符串“\n” new RegExp("\\\\n","g") 相等于 /\\n/g
字符串中 \\ 等于 \ , \\\\n 靠近n的\\代表 \n本身的斜杠,\n的斜杠需要转义,要加\,但是字符串中要用\\表示 \,所有正则中匹配字符串 \n ,字面量用\\n,而构造函数中用\\\\n
如有不对的地方,请多多指教! ——RLflash