概述
今天项目中遇到了一个奇怪的问题,自己记录一下,需求是首次登陆的用户需要修改密码,需要输入新密码两次
问题就出在这里了,因为写了两个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执行全局匹配(查找所有匹配而非在找到第一个匹配后停止))