创建 RegExp object
有两种方式
- RegExp literals
- RegExp constructor
RegExp literals
/pattern/flags
var re = '/o/g'
RegExp constructor
new RegExp(pattern, flags?)
pattern
为 String,此时除了正则表达式的转义外,还要进行字符串转义,比如匹配 \\
var literal = /\\/
var obj = new RegExp('\\\\')
pattern
也可以是一个 RegExp object,创建该对象的克隆
var re = /ab+c/i
new RegExp(re) // /ab+c/i
new RegExp(re, 'iu') // /ab+c/iu, ES5 抛出 SyntaxError
当正则表达式要用到变量时,比如匹配搜索词,RegExp 字面量无法做到,只能用 RegExp constructor。这时要注意转义