一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

javascript中使用exec进行正则表达式全局匹配详解

时间:2011-11-28 编辑:简简单单 来源:一聚教程网

先看一下常见的用法:
:

 代码如下 复制代码

接下来看一下全局模式下的诡异事件:
:

 代码如下 复制代码

第二个语句并没有返回期望的结果,而是返回了 null ,这是因为:
在全局模式下,当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把正则表达式对象的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。
下面是正常的全局模式下的匹配方式:
:

 代码如下 复制代码

从上面的代码我们可以看到,之所以出现第二段代码中的问题,影响因素是 lastIndex ,所以我们可以通过将 lastIndex 手动置 0 的方式来解决这个问题。
:

 代码如下 复制代码

总结:
在全局模式下,如果在一个字符串中完成了一次模式匹配之后要开始检索新的字符串,就必须手动地把 lastIndex 属性重置为 0

热门栏目