一为什么JavaScript中正则表达式的test方法会出错?

http://fdream.net/blog/article/672.aspx

var reg = /[\d]{1,2}:[\d]{1,2}\s*-\s*[\d]{1,2}:[\d]{1,2}/gi; 
reg.test("08:00-10:00");//true
reg.test("08:00-10:00");//false

何解第二次会为false呢;

其实仔细看一下,那个正则表达式多了个全局选项“g”,去掉就好了。

可是为什么有“g”就会出错呢?

原因其实很简单,当一个模式具有全局选项时,和exec一样,每次test都会保留上次匹配的位置——即lastIndex。很显然,当第一次匹配之后,第二次匹配时的lastIndex已经到了字符串末尾,尽管这个时候字符串已经是一个新的字符串了,但是这个lastIndex的位置并没有重新初始化,所以会从末尾开始匹配——当然会匹配失败了。

解决方案有两种:

  • 去掉正则表达式后面的g;
  • 每次完成匹配之后重置模式的lastIndex属性;(即例中的reg.lastIndex=0)

转载于:https://www.cnblogs.com/SeaSun/archive/2011/11/08/2240823.html

Javascript 問題汇总(不定期更新)【一】相关推荐

  1. cloudstack java_CloudStack 故障排查汇总-不定期更新

    工作中经常用到CloudStack,过程中发现的一些故障排查分享出来,希望可以帮到大家. 一.添加主机失败 现象1:[root@mgmt ~]# tail -f /var/log/cloudstack ...

  2. SSM个人遇到的问题汇总——不定期更新

    1.SpringMvc中jsp页面的EL表达式不生效的问题: 原因:isELIgnored默认值为true! 解决办法:在jsp页面上方添加<%@ page isELIgnored=" ...

  3. ROS 常用命令汇总(不定期更新)

    创建ROS工作空间 启动 ROS roscore 创建工作环境 $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ catkin_init_worksp ...

  4. 前端工具汇总(不定期更新)

    1.url action editor 作用:快速修改swf链接 http://www.joomme.com/uae-download.html 2.加噪 http://www.noisetextur ...

  5. 小米kali linux蓝牙,小米筆記本在Kali Linux下所遇問題部分解決方案(持續更新中)...

    0.本人不才,在小米筆記本安裝Kali Linux所遇到的問題用了兩天摸索才得以解決_(:3 」∠)_ ,kali被我裝了5次,win10的引導被我誤刪了兩次(*/ω\*). 在摸索的過程中發現關於小 ...

  6. 使用Blackbird开源JavaScript库時,在IE6+、IE7下無法使用問題說明

    在新聞 [url]http://www.iteye.com/news/3832-goodbye-alert-the-use-of-new-information-pop-up-box[/url] 發布 ...

  7. 区块链矿池(pool)汇总(不定期更新,欢迎评论区留言)

    文章目录 辅助类网站 大型综合类矿池 Bitcoin/Litcoin/zcash Monero 不定期更新 辅助类网站 矿池算例排行:https://miningpoolstats.stream/bi ...

  8. JavaScript中的小陷阱(不定期更新。。)

    1. var scores = [1, 2, 3]; var total = 0; for (var score in scores) {total += score; }var mean = tot ...

  9. jQuery 在 IE 上 clone checkbox 的問題。

    前陣子在處理客戶更改版面的需求時,為了偷懶,結果發現了一個 jQuery 在 IE 上 clone 元素的問題. 先簡單說明一下例子: 如上圖所示,我希望在按下「複製」按鈕後,藍色區塊中的 check ...

最新文章

  1. 【BZOJ-30391057】玉蟾宫棋盘制作 悬线法
  2. 慎重升级!iOS 13可绕过锁屏密码查看通讯录、照片、短信
  3. Attention Mechanism
  4. python中的str与expr的一个区别例子
  5. 资源调度框架YARN
  6. ajax.ajaxmethod无效,jQuery Ajax调用httpget webmethod(C#)无效
  7. CF-558E(E. A Simple Task)
  8. HDFS Safemode问题
  9. java集成极光推送
  10. 计算机桌面计算机快捷方式不见,桌面快捷方式不见了,教您桌面快捷方式不见了怎么办...
  11. 数据模型篇:一、大数据领域建模概述
  12. 如何避免服务器被恶意网络攻击
  13. 使用laravel-wechat微信支付
  14. [不好分类]关于河北盛华化工有限公司附近爆炸原因猜测
  15. RTX3070Ti和RTX2080Ti哪个强 RTX3070Ti和RTX2080Ti参数对比哪个好
  16. 浅谈机器学习-回归与分类的区别
  17. c语言步进电机驱动程序不正常怎么办,步进电机【C语言驱动程序】
  18. 关于实名认证上线时无法立即返回实名认证结果的问题
  19. WIN7下网络共享设置
  20. 外键约束的作用以及如何创建外键约束

热门文章

  1. Atitit.获取approot api 应用根路径 java c#.net php asp
  2. 关于android 图像格式问题
  3. ETL工具 kettle问题
  4. 案例展示快做好了(更新)
  5. $(document).ready、body.Onload()和 $(window).load的区别
  6. 网络驱动器设备:iscsi服务器
  7. 參加microsoft主管信息論壇
  8. eclipse开发java程序,断点调试
  9. android 带清除功能的输入框控件
  10. git 简易指南+常用命令