关于reg.exec和string.match方法
是RegExp对象的方法,参数才是字符串,是字符串执行匹配正则表达式规则的方法,参数是正则表达,返回的都是数组;
在正则表达式没有全局标志时,二者的返回值是相同的
正则表达式中没有捕获组时,返回值是只有一个成员的数组,第一项是从起始位置开始寻找的第一个匹配项,无论执行多少次都是相同的(从位置0开始)
正则表达式中有捕获组时,返回值是一个数组,第一项是从起始位置开始寻找的第一个匹配项,后续是匹配的捕获组,无论执行多少次都是相同的(从位置0开始)
在正则表达式含有全局标志时,二者的返回值不同
正则表达式中没有捕获组的时候
`match`方法返回的数组成员是所有符合条件的匹配项,数组第一个成员存放第一个匹配项,数组第而个成员存放第二个匹配项…依次类推。无论执行多少次返回结果相同
`exec`方法永远返回值是只有一个成员的数组,第一项是第一个匹配项。但是当连续调用exec时,则每次的返回值都是在现有位置继续寻找的下一个匹配项。
正则表达式有捕获组的时候
`match`返回值与没有捕获组时相同,返回的数组由匹配项组成
`exec`返回值与没有g的捕获组正则表达式相同,第一项是从起始位置开始寻找的第一个匹配项,后续是匹配的捕获组,但如果执行多次返回值都是在现有基础上继续寻找的
总结
总结一下:(g代表全局标志,捕代表捕获组,每种情况的用连接的多个数组代表执行多次的结果)
对于方法,是字符串的方法,返回值是数组
有g无捕:→
有g有捕:→
无g无捕:→
无g有捕:→
对于方法,是RegExp对象的方法,返回值是数组
有g无捕:→
有g有捕:→
无g无捕:→
无g有捕:→
领取专属 10元无门槛券
私享最新 技术干货