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("密码必须含大小写字母,数字,特殊字符"));

}

}

}

},

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: