1.exec
按照W3school对于其返回值的解释是:返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
经本人实践证明:全属扯淡!
Demo:
var pattern = /Box/g;
var str = 'BoxsqBox';var a = pattern.exec(str);
alert('pattern.exec(str)获得的数组长度:-----> ' + a.length);//1--> 不为2,实践证明返回的a不是我们想要的数组
alert(pattern.lastIndex);//3 --> Box的x位置为2,lastIndex为下次匹配的位置,本demo里即3
a = pattern.exec(str);
alert(a.length);//1
alert(pattern.lastIndex);//8
var m = str.match(pattern);
alert('str.match(pattern)获得的数组长度:-----> ' + m.length);//为2 --> 返回的m为我们想要的数组
故:
当我们想利用正则表达式匹配符合的数组时,我们可以用string对象的match方法。对于正则表达式对象RegEx的exec方法,什么情形下使用有利,暂未研究。待后期补充ing...