RegExp.prototype.exec()
方法专门为捕获组而设计,该方法在一个指定字符串中执行一个搜索匹配。然后返回包含匹配项信息的数组,在没有匹配项的情况下返回 null
。
RegExp.prototype.exec(str);
参数 | 描述 | 类型 |
---|---|---|
regExpObject | 匹配的正则表达式。 | regexp |
str | 指定的字符串。将在该字符串中执行搜索。 | string |
exec()
方法返回一个数组,并更新正则表达式对象的属性。返回的数组将完全匹配成功的文本作为第一项,将正则括号里匹配成功的作为数组填充到后面。exec()
方法返回 null
。返回的数组包含两个额外的属性。
属性 | 描述 |
---|---|
index | 表示匹配项在字符串的位置 |
input | 表示应用正则表达式的字符串 |
exec()
方法的返回值为 Array 类型,如果找到了对应的匹配,则返回数组的成员如下:
0
:存放第一个匹配的子字符串index
:匹配文本在字符串中的起始索引位置input
:整个字符串对象(stringObject
)在 IE 6 ~ IE 8 中,该数组还具有额外的 lastIndex
属性,用于存储字符串中匹配文本最后一个字符的下一个位置。
// Match "quick brown" followed by "jumps", ignoring characters in between// Remember "brown" and "jumps"// Ignore caselet result = regexp.exec('The Quick Brown Fox Jumps Over The Lazy Dog');let regexp = /quick\s(brown).+?(jumps)/gi;
下表列出这个脚本的返回值:
对象 Result
属性/索引 | 描述 | 例子 |
---|---|---|
[0] | 匹配的全部字符串 | 'Quick Brown Fox Jumps' |
[1],...,[n] | 括号中的分组捕获 | [1] = Brown [2] = Jumps |
index | 匹配到的字符位于原始字符串的基于 0 的索引值 | 4 |
input | 原始字符串 | 'The Quick Brown Fox Jumps Over The Lazy Dog' |
对象 RegExp
属性/索引 | 描述 | 例子 |
---|---|---|
lastIndex | 下一次匹配开始的位置 | 25 |
ignoreCase | 是否使用了'i'标记使正则匹配忽略大小写 | true |
global | 是否使用了'g'标记来进行全局的匹配 | true |
multiline | 是否使用了'm'标记使正则工作在多行模式(也就是,^ 和 $ 可以匹配字符串中每一行的开始和结束(行是由 \n 或 \r 分割的),而不只是整个输入字符串的最开始和最末尾处。) | false |
source | 正则匹配的字符串 | quick\s(brown).+?(jumps) |