JS中的match和exec方法

关于reg.exec和string.match方法

是RegExp对象的方法,参数才是字符串,是字符串执行匹配正则表达式规则的方法,参数是正则表达,返回的都是数组;

在正则表达式没有全局标志时,二者的返回值是相同的

正则表达式中没有捕获组时,返回值是只有一个成员的数组,第一项是从起始位置开始寻找的第一个匹配项,无论执行多少次都是相同的(从位置0开始)

正则表达式中有捕获组时,返回值是一个数组,第一项是从起始位置开始寻找的第一个匹配项,后续是匹配的捕获组,无论执行多少次都是相同的(从位置0开始)

在正则表达式含有全局标志时,二者的返回值不同

正则表达式中没有捕获组的时候

`match`方法返回的数组成员是所有符合条件的匹配项,数组第一个成员存放第一个匹配项,数组第而个成员存放第二个匹配项…依次类推。无论执行多少次返回结果相同

`exec`方法永远返回值是只有一个成员的数组,第一项是第一个匹配项。但是当连续调用exec时,则每次的返回值都是在现有位置继续寻找的下一个匹配项。

正则表达式有捕获组的时候

`match`返回值与没有捕获组时相同,返回的数组由匹配项组成

`exec`返回值与没有g的捕获组正则表达式相同,第一项是从起始位置开始寻找的第一个匹配项,后续是匹配的捕获组,但如果执行多次返回值都是在现有基础上继续寻找的

总结

总结一下:(g代表全局标志,捕代表捕获组,每种情况的用连接的多个数组代表执行多次的结果)

对于方法,是字符串的方法,返回值是数组

有g无捕:→

有g有捕:→

无g无捕:→

无g有捕:→

对于方法,是RegExp对象的方法,返回值是数组

有g无捕:→

有g有捕:→

无g无捕:→

无g有捕:→

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180914G1OGPU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券