js两次一样的正则表达式,结果却不同
2015-10-27 12:57
519 查看
var reg = /^[\d]{1,}$/g;
console.log(obj.value>50 || !reg.test(obj.value))
if(obj.value>50 || !reg.test(obj.value))
当时不管console里面是true还是false,if条件总为真,当时我就bug了。。
后来百度了才知道,这是因为reg里面有一个lastIndex的属性记录了最后一次成功匹配的位置。第二次又从lastIndex开始了。为此,把lastIndex重新置为0或者把/g去掉才行
http://stackoverflow.com/questions/1520800/why-regexp-with-global-flag-in-javascript-give-wrong-results
console.log(obj.value>50 || !reg.test(obj.value))
if(obj.value>50 || !reg.test(obj.value))
当时不管console里面是true还是false,if条件总为真,当时我就bug了。。
后来百度了才知道,这是因为reg里面有一个lastIndex的属性记录了最后一次成功匹配的位置。第二次又从lastIndex开始了。为此,把lastIndex重新置为0或者把/g去掉才行
http://stackoverflow.com/questions/1520800/why-regexp-with-global-flag-in-javascript-give-wrong-results
相关文章推荐
- DOM创建节点和添加属性
- 将数字转化成一定精度的小数(JS函数)
- JavaScript开发规范要求
- JavaScript 通过HTML的FileReader把图片转成base64
- JS/JQ控制音频的播放和暂停
- php语言中使用json的技巧及json的实现代码详解
- javascript(二)构造函数
- 配置静态文件缓存
- javascript(二)对象的创建和访问
- jsp实现针对excel及word文档的打印方法
- JSP实现的简单分页显示效果代码
- js 数据类型转换
- 106 js判断浏览器内核版本
- js中,for循环里面放ajax,ajax访问不到变量以及每次循环获取不到数据问题总结
- @jsonignore的使用
- JavaScript总结之三
- JavaScript总结之二
- javascript (一)闭包
- javascript的helloWorld
- JavaScript总结之一