本文實(shí)例講述了JS實(shí)現(xiàn)至少包含字母、大小寫數(shù)字、字符的密碼等級(jí)的兩種方法。分享給大家供大家參考。具體如下:
前言
密碼,如果設(shè)置的太簡單,很容易就被攻破,所以很多網(wǎng)站將密碼設(shè)置的要求設(shè)置的挺嚴(yán)格,一般是字母、數(shù)字、字符3選2,區(qū)分大小寫。對(duì)于設(shè)置得太簡單的密碼,予以錯(cuò)誤提示。或者予以密碼等級(jí)(低中高)顯示,讓用戶設(shè)置高級(jí)密碼。那如何利用JS實(shí)現(xiàn)呢?
實(shí)現(xiàn)代碼如下:
function passwordLevel(password) { var Modes = 0; for (i = 0; i < password.length; i++) { Modes |= CharMode(password.charCodeAt(i)); } return bitTotal(Modes); //CharMode函數(shù) function CharMode(iN) { if (iN >= 48 && iN <= 57)//數(shù)字 return 1; if (iN >= 65 && iN <= 90) //大寫字母 return 2; if ((iN >= 97 && iN <= 122) || (iN >= 65 && iN <= 90)) //大小寫 return 4; else return 8; //特殊字符 } //bitTotal函數(shù) function bitTotal(num) { modes = 0; for (i = 0; i < 4; i++) { if (num & 1) modes++; num >>>= 1; } return modes; }}使用
普通使用
使用語法:passwordLevel(string)
驗(yàn)證規(guī)則:數(shù)字、大寫字母、小寫字母、特殊字符
函數(shù)結(jié)果:返回密碼中包含的規(guī)則數(shù)
運(yùn)行例子:
passwordLevel("123456") //返回1passwordLevel("Abc'123456") //返回4結(jié)合jquery.validate.js使用:
//添加驗(yàn)證方法:至少包含兩種規(guī)則$.validator.addMethod("strongPsw",function(value,element){ if(passwordLevel(value)==1){returnfalse;} returntrue},"格式不符合");//開始驗(yàn)證$(".form").validate({ rules:{ pwd:{ required:true, //必填 minlength:6, //最小長度 maxlength:32, //最大長度 strongPsw:true, //密碼強(qiáng)度 }, repwd:{ required:true, minlength:6, maxlength:32, equalTo:"#pwd" //再次填寫密碼需一致 } }});關(guān)于密碼生成與強(qiáng)度檢測(cè)感興趣的朋友還可參考在線工具:
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注