在JS中关于正则表达式主要有两部分,一个是正则表达式对象RegExp,一个是String类型的正则表达式相关方法(匹配、替换等)
创建一个正则表达式对象有两种方法,一种是字面量的方式,一种是构造函数,下面这两种写法是等价的,我们推荐通过字面量的方式。
var patt=/\d+/g var patt=new RegExp("\\d+","g")
字面量方式:形如 /pattern/flags,双"/"中间是正则表达式pattern,“flags”是修饰符
构造函数方式:形如 new RegExp(pattern,flags)
现在说一下为什么不要用构造函数,因为用构造函数创建正则,可能会导致对一些字符的双重转义,在上面的例子中,构造函数中第一个参数必须传入字符串(ES6可以传字面量),所以字符\ 会被转义成\,因此字面量的\b会变成字符串中的\\b,这样很容易出错,贼多的反斜杠