2013-6-19-1-js-正则表达式对象

来源:互联网 发布:英语杂志软件 编辑:程序博客网 时间:2024/06/09 20:05

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...