语法
正则表达式有两种语法,字面量语法和构造函数语法:
- 字面量语法
var expression = /pattern/flags;
pattern
:模式,可以是任何简单或复杂的正则表达式。flags
:标记,可以有一个或多个,用以标明正则表达式的行为。支持三个标志:g
,i
,m
。
g
表示全局模式。即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止;i
表示不区分大小写模式,即在确定匹配项时忽略模式与字符串的大小写;m
表示多行模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项。
- 构造函数语法
var re = new RegExp("pattern", "flags");
第一个参数指的是要匹配的字符串模式,另一个是可匹配的标志字符串。
由于构造函数模式参数是字符串,所以默写情况下需要对字符进行双重转义。下面是一些模式,左边是这些模式的字面量形式,右边是使用RegExp构造函数定义相同模式时使用的字符串。
字面量模式 | 等价的字符串 |
---|---|
/[bc]at/ | "\[bc\]at" |
/.at/ | "\.at" |
/name/age/ | "name\/age" |
/\d.\d{1,2}/ | "\d.\d{1,2}" |
/\w\hello\123/ | "\w\\hello\\123" |