正则表达式中match和exec的区别

match是字符串执行匹配正则表达式规则的方法,它的参数是正则表达,而exec是正则表达式的方法,不是字符串的方法,它的参数是字符串。

定义为非全局匹配时:

1、正则表达式无子表达式,exec和match执行的结果是一样,均返回第一个匹配的字符串内容;

2、正则表达式有子表示时,exec和match执行的结果是一样;

定义为全局匹配时:

1、正则表达式无子表达式,exec和match执行,做存在多处匹配内容,则match返回的是多个元素数组;

2、正则表达式有子表示,exec和match执行的结果不一样,此时match将忽略子表达式,只查找全匹配正则表达式并返回所有内容

无论 RegExpObject 是否是全局模式,exec() 都会把完整的细节添加到它返回的数组中。这就是 exec() 与 String.match() 的不同之处,后者在全局模式下返回的信息要少得多。因此我们可以这么说,在循环中反复地调用 exec() 方法是唯一一种获得全局模式的完整模式匹配信息的方法。

猜你喜欢

转载自blog.csdn.net/frost666/article/details/80792870