创建正则表达式

阅读: 4208    发布时间: 2018-01-30 10:25:57

在JS中关于正则表达式主要有两部分,一个是正则表达式对象RegExp,一个是String类型的正则表达式相关方法(匹配、替换等)

创建一个正则表达式对象有两种方法,一种是字面量的方式,一种是构造函数,下面这两种写法是等价的,我们推荐通过字面量的方式。

var patt=/\d+/g       
var patt=new RegExp("\\d+","g")
  • 字面量方式:形如 /pattern/flags,双"/"中间是正则表达式pattern,“flags”是修饰符

  • 构造函数方式:形如 new RegExp(pattern,flags)

现在说一下为什么不要用构造函数,因为用构造函数创建正则,可能会导致对一些字符的双重转义,在上面的例子中,构造函数中第一个参数必须传入字符串(ES6可以传字面量),所以字符\ 会被转义成\,因此字面量的\b会变成字符串中的\\b,这样很容易出错,贼多的反斜杠

-END-