当 RegExpObject 是作为一个变量时时。每次调用完exec()后。它会在 RegExpObject 的 lastIndex 属性指定的字符处开始检索字符串 string。当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。

重要事项:如果一个RegExpObject变量,在一个字符串中完成了一次模式匹配之后要开始检索新的字符串,就必须手动地把 lastIndex 属性重置为 0。

而实际我们应用中经常使用同一个RegExpObject对象,避免每次匹配重新解析表达式,应该会提升一些效率。

所以最好是在使用正则表达式前实现如下新的匹配方法。

// 正则无记忆方法
RegExp.prototype.TestNoRecord = function(str){
var ret = this.test(str);
this.lastIndex = 0;
return ret;
}
RegExp.prototype.ExecNoRecord = function(str){
var ret = this.exec(str);
this.lastIndex = 0;
return ret;
}

最新文章

  1. ABP理论之CSRF
  2. 在Django中进行注册用户的邮件确认
  3. Oracle VM Virtual
  4. Ubuntu下为Firefox安装Adobe Flash Player
  5. 笨办法学 Python (第三版)(转载)
  6. Linux进程管理(-)
  7. 8.4 sikuli 集成进eclipse 报错:Unsupported major.minor version 51.0
  8. UML总结(对九种图的认识和如何使用Rational Rose 画图)
  9. WOW.js 使用教程
  10. fair scheduler配置
  11. Delphi 如何操作Excel
  12. Kafka项目实战-用户日志上报实时统计之编码实践
  13. 【代码审计】YzmCMS_PHP_v3.6 CSRF漏洞分析
  14. C语言一些基础知识
  15. angularjs基础——变量绑定
  16. JAVA volatile 解析
  17. PHP(九)数组(2)
  18. 20145328 《Java程序设计》第5周学习总结
  19. Centos6.5上安装sonarqube6.7.6
  20. OpenCV-Python 人脸眼睛嘴识别

热门文章

  1. drupal7 查看哪些模块实现了某个钩子
  2. java注册后缀样式(ajax提示)
  3. VMware桥接模式下主机和和虚机间互相ping不通的处理方法
  4. TOMCAT配置SSL认证为HTTPS协议服务
  5. Flex Box 简单弹性布局
  6. Oracle EBS 清除并发请求和(或)管理器数据 请求
  7. Linux系统管理员命令:sudo
  8. Mybatis将结果放入map时别名不是驼峰形式
  9. 有序字典(OrderedDict)、默认字典(defaultdict)内置函数
  10. mysql二进制安装方法