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不考虑全局问题,只匹配第一个,考虑分组捕获,返回数组。

 

posted @ 2015-05-13 15:24  Debugor  阅读(209)  评论(0编辑  收藏  举报