8-20位必须包含大写字母,小写字母,数字组合,特殊字符
1、放在一起验证
function hidePsw(psw){
psw = psw.toString();
var ISPWD =/^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*,\.])[0-9a-zA-Z!@#$%^&*,\.]{8,20}$/;
if(ISPWD.test(psw)){
return psw;
}else{
console.log("111");
}
}
2、分开验证
newPassword(rule, value, callback) {
let regex =
/(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[*?!&¥$%^#,./@";:><\[\]}{\-=+_\\|》《。,、?’‘“”~ `])/;
let strReg =
/(a(?=b)|b(?=c)|c(?=d)|d(?=e)|e(?=f)|f(?=g)|g(?=h)|h(?=i)|i(?=j)|j(?=k)|k(?=l)|l(?=m)|m(?=n)|n(?=o)|o(?=p)|p(?=q)|q(?=r)|r(?=s)|s(?=t)|t(?=u)|u(?=v)|v(?=w)|w(?=x)|x(?=y)|y(?=z)|z(?=a)){3}[a-z]/i;
let numReg =
/(0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){3}\d/;
let keyboardHorizontalReg =
/(q(?=w)|w(?=e)|e(?=r)|r(?=t)|t(?=y)|y(?=u)|u(?=i)|i(?=o)|o(?=p)|p(?=q) |a(?=s)|s(?=d)|d(?=f)|f(?=g)|g(?=h)|h(?=j)|j(?=k)|k(?=l)|l(?=a) | z(?=x)|x(?=c)|c(?=v)|v(?=b)|b(?=n)|n(?=m)|m(?=z)){3}[a-z]/i;
let sameReg = /(\w)\1{3}/i;
if (!value) {
callback(new Error("密码不能为空"));
} else {
let passlength = value.length;
if (passlength > 20 || passlength < 8) {
callback(new Error("请输入8-16位字符"));
} else {
if (regex.test(value)) {
if (sameReg.test(value)) {
callback(new Error("密码不能含有连续4位相同的数字或字母"));
} else if (strReg.test(value)) {
callback(new Error("密码不能含有4位连续的字母"));
} else if (numReg.test(value)) {
callback(new Error("密码不能含有4位连续的数字"));
} else if (keyboardHorizontalReg.test(value)) {
callback(new Error("密码不能含有4位键盘横向方向连续的字母"));
} else {
callback();
}
} else {
callback(new Error("密码必须含大小写字母,数字,特殊字符"));
}
}
}
},