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程序设计有所帮助。