概述
今天项目中遇到了一个奇怪的问题,自己记录一下,需求是首次登陆的用户需要修改密码,需要输入新密码两次
问题就出在这里了,因为写了两个input框,同时还需要校验密码强度,这时候正则校验
var regLow = new RegExp("(?=.{6,}).*",'g');
//密码强度为低的正则,这时候用一个正则校验两次 两次结果不一致
示例:
var reg = /abc/g
var a = 'abc'
var b = 'abc'
console.log(reg.test(a)) //true
console.log(reg.test(b)) //false
//正如看到的现象,两个输入的一直,同样用的一个正则,为什么输出结果却不同呢
解决方法:把g去掉(g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止))
在项目中遇到使用正则表达式校验密码强度时,发现同一个正则在两次校验相同密码时返回不同结果的奇怪现象。本文详细解析了正则表达式的g标志作用及如何避免该问题。
535

被折叠的 条评论
为什么被折叠?



