match和exec的用法区别

//exec and match
//1 无子类无全局
var str='abcde';
var reg=/abc/;
//alert(str.match(reg)); //abc
//alert(reg.exec(str)); //abc

//2 有子类无全局
var str='abcde';
var reg=/ab(c)/;
alert(reg.exec(str)); //abc,c
alert(str.match(reg)); //abc

//3 有全局无子类
var str='abcdeabc';
var reg=/abc/g;
alert(reg.exec(str)); // abc
alert(str.match(reg)); // abc,abc

//4 有全局有子类
var str='abcdeabc';
var reg=/ab(c)/g;
alert(reg.exec(str)); // abc,c
alert(str.match(reg)); // abc,abc

总结:match若无全局则匹配第一个,若有则全部匹配,不考虑分组捕获,返回数组。
exec不考虑全局问题,只匹配第一个,考虑分组捕获,返回数组。

原文地址:https://www.cnblogs.com/wz0107/p/4500558.html