ES通过RegExp类型来支持正则表达式,使用Perl的语法创建一个正则表达式
var expression = / pattern / flags
模式(pattern)部分
任何简单或者复杂的正则表达式,可以包含字符类、限定符、分组、向前查找以及反向引用。
标志(flags)部分
每个正则表达式都可带有一个或者多个标志,用以表明正则表达式的行为
g:表示全局(global)模式,即模式将被应用于所有的字符串,而非在发现第一个匹配项时立即停止
i:表示不区分大小写模式,即在确定匹配项时忽略模式与字符串的大小写、
m:表示多行,即在未到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项
与其他所有的正则表达式类似,模式中使用的所有元字符都必须转移,正则表达式中的元字符包括
([ { \ ^ $ | } ] ) ? * + .
以上这些都是以字面量形式来定义的正则表达式,另外一种创建正则表达式的方法是使用RegExp构造函数,它接收两个参数,一个是匹配的字符串模式,另一个是可选的标志字符串,可以使用字面量定义的任何表达式,都可以使用构造函数来定义
使用正则表达式字面量和使用RegExp构造函数创建的正则表达式不一样,在es3中,正则表达式字面量始终会共享同一个RegExp实例,而使用构造函数创建的每一个新RegExp实例都是一个新的实例