JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案


Posted in Javascript onJuly 27, 2016

一个简单的利用正则判断输入是否为数字:

input1 = '0281234567';input2 = '0282345678';var reg = /^\d+$/g;
reg.test(input1); //true
reg.test(input2); //false

发现第二次test的时候返回的值不对了.排除书写错误,取值失败等等各种干扰因素后,发现仅仅是reg正则第二次执行的时候就无法正确执行了.之前并未遇到过这个问题,便搜索了一下相关信息.

原来这个问题实际上是/g导致的,而此时也才发现,实际上这个正则我误用了一个/g.因为/g代表全局匹配,所以判断正则时内部是有一个lastIndex来记录最后匹配的位置.当重复调用的时候,会接着上次的lastIndex继续匹配,故而将导致判断出错.明白了原理解决起来也就很明了了:

1.去掉/g,在不需要/g的情况下不要随意添加/g标识

2.第二次匹配前,手动将lastIndex置0,以上面的例子来说:reg.lastIndex()=0即可.

以上所述是小编给大家介绍的JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 判断页面元素是否存在的代码
Aug 14 Javascript
js 禁用只读文本框获得焦点时的退格键
Apr 25 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
Dec 12 Javascript
深入理解jQuery中live与bind方法的区别
Dec 18 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
Jan 27 Javascript
动态添加删除表格行的js实现代码
Feb 28 Javascript
jquery插件autocomplete用法示例
Jul 01 Javascript
用js读写cookie的简单方法(推荐)
Aug 08 Javascript
Vue.js结合bootstrap实现分页控件
Mar 10 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
Jun 01 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
Antd表格滚动 宽度自适应 不换行的实例
Oct 27 Javascript
AngularJS入门教程之Scope(作用域)
Jul 27 #Javascript
AngularJS入门之动画
Jul 27 #Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
Jul 27 #Javascript
获取JS中网页各种高宽与位置的方法总结
Jul 27 #Javascript
AngularJS 模型详细介绍及实例代码
Jul 27 #Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
Jul 27 #Javascript
详解Angular开发中的登陆与身份验证
Jul 27 #Javascript
You might like
mysql时区问题
2008/03/26 PHP
PHP 存储文本换行实现方法
2010/01/05 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
extjs两个tbar问题探讨
2013/08/08 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
Python创建xml的方法
2015/03/10 Python
python生成九宫格图片
2018/11/19 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
python3下pygame如何实现显示中文
2020/01/11 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
服务承诺书怎么写
2014/05/24 职场文书
英语教研活动总结
2014/07/02 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
离婚答辩状范文
2015/05/22 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
Oracle使用别名的好处
2022/04/19 Oracle