首页 > Web开发 > 详细

js相同的正则多次调用test()返回的值却不同

时间:2019-08-20 17:10:59      阅读:109      评论:0      收藏:0      [点我收藏+]

项目中文件上传需要验证文件的格式,第一次正常,第二次就验证不通过了。在验证的地方console.log()两遍,发现结果不一样 !!!

正则和文件名都没变,但是两次的验证结果不同。

this.reg = /\.(xlsx|xls)$/ig;
console.log(this.reg.test(newFile.name)) //true
console.log(this.reg.test(newFile.name)) //false

 

lastIndex 这一属性用于匹配下次检索的开始位置,该属性可读写,exec() 或 test()方法可以改写这一属性。

当找不到匹配内容是,lastIndex被自动设为0。

解决方案

第一种方案是将g去掉,关闭全局匹配。

第二种就是在每次匹配之前将lastIndex的值设置为0。

js相同的正则多次调用test()返回的值却不同

原文:https://www.cnblogs.com/gxp69/p/11383919.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!