正则表达式
var expression = /pattern/ flags;//用该方法创建的始终是同一个正则
var expression = new RegExp("[a]","g")//创建一个新的正则对象
pattern
: 可以是任何简单或者复杂的正则表达式,可以包含字符类,限定符,分组,向前查找以及反向引用.
flags
: 可以有多个标志,用以标明正则表达式的行为,包含三种标志
- g:表示全局模式,将被应用于所有字符串,而非在发现第一个匹配项时立即停止
- i:表示不区分大小写模式,将会自动忽略模式于字符串的大小写
- m:表示多行模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项
正则表达式所使用的所有元字符都必须转义,元字符包括:{[(^$|)?*+.]}
实例属性
RegExp每个实例都有下列属性:
- global: 布尔值,表示是否设置了g标志
- ignoreCase: 布尔值,表示是否设置了i标志
- lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0算起
- multilne:布尔值,表示是否设置了m标志
- source:正则表达式的字符表示
var pattern1 = /[bc]at/i;
pattern1.global;//false
pattern1.ignoreCase;//true
pattern1.multilne;//false
pattern1.lastIndex;//0
pattern1.source;//"[bc]at"
var pattern2 = new RegExp("\[bc\]at","i");
pattern2.global;//false
pattern2.ignoreCase;//true
pattern2.multilne;//false
pattern2.lastIndex;//0
pattern2.source;//"[bc]at"
实例方法
- exec(),该方法接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组,在没有匹配项的情况下返回null.返回的 数组是Array的实例,但还有两个额外属性:index和input. index表示匹配项在字符串中的位置,而input表示应用正则表达式的字符串.不在全局的情况下,在同一个字符串多次调用exec()将始终返回第一个的匹配项,而全局的情况每次都会在字符串中继续查找新匹配项.
- test(),它接受一个字符串参数.在模式 与该参数匹配的情况下返回true,否则返回false.
修饰符 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配。 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
m | 执行多行匹配。 |
正则表达式模式
方括号用于查找某个范围内的字符:
表达式 | 描述 |
---|---|
[abc] | 查找方括号之间的任何字符。 |
[0-9] | 查找任何从 0 至 9 的数字。 |
(x|y) | 查找任何以 | 分隔的选项。 |
元字符是拥有特殊含义的字符:
元字符 | 描述 |
---|---|
d | 查找数字。 |
s | 查找空白字符。 |
匹配单词边界。 | |
uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符。 |
量词:
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个 n 的字符串。 |
n* | 匹配任何包含零个或多个 n 的字符串。 |
n? | 匹配任何包含零个或一个 n 的字符串。 |