//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不考虑全局问题,只匹配第一个,考虑分组捕获,返回数组。
本文详细解析了JavaScript中正则表达式的match和exec方法的使用区别。通过四个不同场景的代码示例,阐述了这两种方法在处理全局搜索、子类捕获时的不同行为,为开发者提供清晰的操作指南。
3775

被折叠的 条评论
为什么被折叠?



