javascrpt密码强度校验函数详解
最近写了个密码强度验证的函数,主要验证以下内容
1、密码最小和最大长度
2、连续字符串出现的次数
3、字符连续出现的次数
4、禁止特定的字符串作为密码
5、密码字符串的组合强度要求,必须含有大小写字母,必须含有数字,必须含有特殊字符
6、输入密码必须与确认密码一致
7、支持禁止使用用户名作为密码
8、是否存在连续性的字符串,是否存在逆序性的字符串
(function(window,verifyPwd){ window.verifyPwd={ /*最小长度*/ minLength:6 /*最大长度*/ maxLength:18, /*字符重复次数*/ repeatCount:0, /*连续字符*/ seriesCount:3, /*特定过滤字符串*/ filter:[ "qaz", "wsx", "edc", "qwe", "asd", "zxc" ], /*允许的字符串*/ arrRegex:['[0-9]','[a-z]','[A-Z]','[!@#$%^&*()_-]'], /** *验证密码 *@paramuserName用户名 *@parampwd密码 *@paramconfirmPwd确认密码 *@returns{boolean} */ verify:function(userName,pwd,confirmPwd){ userName=trim(userName); pwd=trim(pwd); if(!userName||userName.length==0){ alert('请先输入用户名'); returnfalse; } if(!pwd||pwd.length==0){ alert('请输入密码'); returnfalse; } if(pwd.lengththis.maxLength){ alert('密码长度超过'+this.maxLength+'位'); returnfalse; } /*判断输入密码与确认密码是否一致*/ if(confirmPwd&&confirmPwd.length>0){ if(pwd!=confirmPwd){ alert('输入密码与确认密码不一致'); returnfalse; } } /*判断密码中是否存在用户名*/ if(pwd.indexOf(userName)>=0){ alert('密码中不能出现用户名为'+userName); returnfalse; } if(!eval('/'+this.arrRegex[0]+'/').test(pwd)){ alert('密码没有包含数字'); returnfalse; } if(!eval('/'+this.arrRegex[1]+'/').test(pwd)){ alert('密码没有包含小写字母'); returnfalse; } if(!eval('/'+this.arrRegex[2]+'/').test(pwd)){ alert('密码没有包含大写字母'); returnfalse; } if(!eval('/'+this.arrRegex[3]+'/').test(pwd)){ alert('密码没有包含!@#$%&*_等至少一个特殊字符'); returnfalse; } /*判断是否存在过滤性字符串*/ if(this.filter.length>0){ for(vari=0,length=this.filter.length;i 0){ for(vari=0,length=pwd.length;i 0){ /*自身算起*/ varascSeriesCount=1; vardescSeriesCount=1; /*存在顺序型的连续性的字符串*/ for(vari=0,length=pwd.length;i =0;i--){ varcurrentCharCode=pwd.charCodeAt(i); varprevCharCode=(i-1)>=0?pwd.charCodeAt(i-1):""; if(currentCharCode+1==prevCharCode){ descSeriesCount++; if(descSeriesCount==this.seriesCount){ returntrue; } }else{ descSeriesCount=1; } } } returnfalse; }, /** *初始化方法 *@paramuserNameId用户id *@parampwdId */ init:function(userNameId,pwdId){ $("#"+pwdId).on("blur",function(){ varuserName=$("#"+userNameId).val(); varpwd=this.value; if(userName.length==0){ $("#"+userNameId).focus(); alert("请输入用户名"); returnfalse; } /*若验证正确,进行加密处理*/ if(this.verify(userName,pwd)){ pwd=md5(pwd); $("#"+pwdId).val(pwd); } }); } } })(window,undefined);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。