JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
本文实例讲述了JS实现至少包含字母、大小写数字、字符的密码等级的两种方法。分享给大家供大家参考。具体如下:
前言
密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母、数字、字符3选2,区分大小写。对于设置得太简单的密码,予以错误提示。或者予以密码等级(低中高)显示,让用户设置高级密码。那如何利用JS实现呢?
实现代码如下:
functionpasswordLevel(password){
varModes=0;
for(i=0;i<password.length;i++){
Modes|=CharMode(password.charCodeAt(i));
}
returnbitTotal(Modes);
//CharMode函数
functionCharMode(iN){
if(iN>=48&&iN<=57)//数字
return1;
if(iN>=65&&iN<=90)//大写字母
return2;
if((iN>=97&&iN<=122)||(iN>=65&&iN<=90))
//大小写
return4;
else
return8;//特殊字符
}
//bitTotal函数
functionbitTotal(num){
modes=0;
for(i=0;i<4;i++){
if(num&1)modes++;
num>>>=1;
}
returnmodes;
}
}
使用
普通使用
使用语法:passwordLevel(string)
验证规则:数字、大写字母、小写字母、特殊字符
函数结果:返回密码中包含的规则数
运行例子:
passwordLevel("123456")//返回1
passwordLevel("Abc'123456")//返回4
结合jquery.validate.js使用:
//添加验证方法:至少包含两种规则
$.validator.addMethod("strongPsw",function(value,element){
if(passwordLevel(value)==1){returnfalse;}
returntrue
},"格式不符合");
//开始验证
$(".form").validate({
rules:{
pwd:{
required:true,//必填
minlength:6,//最小长度
maxlength:32,//最大长度
strongPsw:true,//密码强度
},
repwd:{
required:true,
minlength:6,
maxlength:32,
equalTo:"#pwd"//再次填写密码需一致
}
}
});
关于密码生成与强度检测感兴趣的朋友还可参考在线工具:
密码安全性在线检测
高强度密码生成器
短链(短网址)在线生成工具
希望本文所述对大家的javascript程序设计有所帮助。