1. 前言
exec()
方法在一个指定字符串中执行一个搜索匹配。返回一个结果数组或null
。
在设置了global
或sticky
标志位的情况下(如 /foo/g
or /foo/y
),JS的RegExp
对象是有状态的,每一次exec()
都从上一次结束的位置开始向后匹配。
2.语法
regexObj.exec(str)
参数
str
:要匹配正则表达式的字符串。
返回值
匹配成功,返回一个数组(包含额外的属性index
和input
),并更新正则表达式对象的lastIndex
属性。
匹配失败,返回null
,并把lastIndex
重置为0。
3. 实例
实例一
const reg = RegExp('foo*', 'g')
const str = 'table footable, foosball'
let arr
while (((arr = reg.exec(str)) !== null)) {
console.log(`Found ${arr[0]}. Next starts at ${reg.lastIndex}.`)
}
注解:
*
代表前面的字符可以不出现,也可以出现一次或多次
实例二
const reg1 = /quick\s(brown).+?(jumps)/ig
let res = reg1.exec('The Quick Brown Fox Jumps Over The Lazy Dog')
console.log(res)
注解:
\s
:匹配所有空白符,包括空格、制表符、换页符()
:标记一个子表达式开始和结束的位置.
:匹配所有除\n
之外的任何单字符+
:匹配前面的子表达式一次或多次?
:匹配前面的子表达式0次或一次