JS正则RegExp.test()使用注意事项(不具有重复性)


Posted in Javascript onDecember 28, 2016

本文实例分析了JS正则RegExp.test()使用注意事项。分享给大家供大家参考,具体如下:

先看下面这段代码:

// 2012-12-12 12:12:12
var regex = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g;
// true
alert(regex.test("2012-12-12 12:12:12"));
// false
alert(regex.test("2012-12-12 12:12:12"));

执行结果已经在代码注释里了,可以看到:对于同一个正则表达式对象regex,不能重复调用:第一次返回true,第二次就返回false,很显然这种效果不是我们想要的。这是因为RegExp.test()方法,第一次从位置0开始查找,可以匹配;第二次的查找位置就不是0了,说以就不能匹配了。

解决方式挺简单:每次都让test从第0个位置开始匹配就可以了:

// 2012-12-12 12:12:12
var regex = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g;
// true
alert(regex.test("2012-12-12 12:12:12"));
regex.lastIndex = 0;
// true
alert(regex.test("2012-12-12 12:12:12"));
Javascript 相关文章推荐
IE FF OPERA都可用的弹出层实现代码
Sep 29 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
基于jQuery实现下拉框
Nov 24 Javascript
js实现简单div拖拽功能实例
May 12 Javascript
jQuery实现页面点击后退弹出提示框的方法
Aug 24 Javascript
JQuery中解决重复动画的方法
Oct 17 Javascript
详解axios在vue中的简单配置与使用
May 10 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
vue父组件中获取子组件中的数据(实例讲解)
Sep 27 Javascript
angular2路由之routerLinkActive指令【推荐】
May 30 Javascript
原生JavaScript创建不可变对象的方法简单示例
May 07 Javascript
vue使用nprogress加载路由进度条的方法
Jun 04 Javascript
Bootstrap 模态框实例插件案例分析
Dec 28 #Javascript
Angular使用ng-messages与PHP进行表单数据验证
Dec 28 #Javascript
Bootstrap中datetimepicker使用小结
Dec 28 #Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
Dec 28 #Javascript
angular-ui-sortable实现可拖拽排序列表
Dec 28 #Javascript
JS正则表达式之非捕获分组用法实例分析
Dec 28 #Javascript
JavaScript实现经典排序算法之插入排序
Dec 28 #Javascript
You might like
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
PHP数组相关函数汇总
2015/03/24 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
apache部署python程序出现503错误的解决方法
2017/07/24 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
Python数据正态性检验实现过程
2020/04/18 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
小学门卫岗位职责
2013/12/17 职场文书
2014年社会实践活动总结范文
2014/04/29 职场文书
销售会议开幕词
2015/01/28 职场文书
接收函格式
2015/01/30 职场文书
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL