本文實例講述了JS實現至少包含字母、大小寫數字、字元的密碼等級的兩種方法。分享給大家供大家參考。具體如下:
前言
密碼,如果設定的太簡單,很容易就被攻破,所以很多網站將密碼設定的要求設定的挺嚴格,一般是字母、數字、字元3選2,區分大小寫。對於設定得太簡單的密碼,予以錯誤提示。或以密碼等級(低中高)顯示,讓使用者設定高級密碼。那如何利用JS實現呢?
實作程式碼如下:
function passwordLevel(password) { var Modes = 0; for (i = 0; i < password.length; i++) { Modes |= CharMode(password.charCodeAt(i)); } return bitTotal(Modes); //CharMode函数 function CharMode(iN) { if (iN >= 48 && iN <= 57)//数字 return 1; if (iN >= 65 && iN <= 90) //大写字母 return 2; if ((iN >= 97 && iN <= 122) || (iN >= 65 && iN <= 90)) //大小写 return 4; else return 8; //特殊字符 } //bitTotal函数 function bitTotal(num) { modes = 0; for (i = 0; i < 4; i++) { if (num & 1) modes++; num >>>= 1; } return modes; } }
使用
普通使用
使用語法: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程式設計有所幫助。