JS實(shí)現(xiàn)至少包含字母、大小寫(xiě)數(shù)字、字符的密碼等級(jí)的兩種方法
本文實(shí)例講述了JS實(shí)現(xiàn)至少包含字母、大小寫(xiě)數(shù)字、字符的密碼等級(jí)的兩種方法。分享給大家供大家參考。具體如下:
前言
密碼,如果設(shè)置的太簡(jiǎn)單,很容易就被攻破,所以很多網(wǎng)站將密碼設(shè)置的要求設(shè)置的挺嚴(yán)格,一般是字母、數(shù)字、字符3選2,區(qū)分大小寫(xiě)。對(duì)于設(shè)置得太簡(jiǎn)單的密碼,予以錯(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) //大寫(xiě)字母
return 2;
if ((iN >= 97 && iN <= 122) || (iN >= 65 && iN <= 90))
//大小寫(xiě)
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;
}
}
使用
普通使用
使用語(yǔ)法:passwordLevel(string)
驗(yàn)證規(guī)則:數(shù)字、大寫(xiě)字母、小寫(xiě)字母、特殊字符
函數(shù)結(jié)果:返回密碼中包含的規(guī)則數(shù)
運(yùn)行例子:
passwordLevel("123456") //返回1
passwordLevel("Abc'123456") //返回4
結(jié)合jquery.validate.js使用:
//添加驗(yàn)證方法:至少包含兩種規(guī)則
$.validator.addMethod("strongPsw",function(value,element){
if(passwordLevel(value)==1){returnfalse;}
returntrue
},"格式不符合");
//開(kāi)始驗(yàn)證
$(".form").validate({
rules:{
pwd:{
required:true, //必填
minlength:6, //最小長(zhǎng)度
maxlength:32, //最大長(zhǎng)度
strongPsw:true, //密碼強(qiáng)度
},
repwd:{
required:true,
minlength:6,
maxlength:32,
equalTo:"#pwd" //再次填寫(xiě)密碼需一致
}
}
});
關(guān)于密碼生成與強(qiáng)度檢測(cè)感興趣的朋友還可參考在線工具:
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
相關(guān)文章
微信小程序?qū)崿F(xiàn)指定顯示行數(shù)多余文字去掉用省略號(hào)代替
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)指定顯示行數(shù)多余文字去掉用省略號(hào)代替的方法,需要的朋友可以參考下2018-07-07
關(guān)于ES6中的箭頭函數(shù)超詳細(xì)梳理
箭頭函數(shù)可以說(shuō)是es6的一大亮點(diǎn),使用箭頭函數(shù),可以簡(jiǎn)化編碼過(guò)程,是代碼更加的簡(jiǎn)潔,下面這篇文章主要給大家介紹了關(guān)于ES6中箭頭函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
用js實(shí)現(xiàn)放大鏡的效果的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇用js實(shí)現(xiàn)放大鏡的效果的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05
javascript實(shí)現(xiàn)tab響應(yīng)式切換特效
這篇文章主要為大家介紹了javascript實(shí)現(xiàn)tab響應(yīng)式切換特效,以一個(gè)完整的實(shí)例對(duì)tab響應(yīng)式切換特效進(jìn)行詳細(xì)的分析,感興趣的小伙伴們可以參考一下2016-01-01
JavaScript中數(shù)組的各種操作的總結(jié)(必看篇)
下面小編就為大家?guī)?lái)一篇JavaScript中數(shù)組的各種操作的總結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
js控制輸入框獲得和失去焦點(diǎn)時(shí)狀態(tài)顯示的方法
這篇文章主要介紹了js控制輸入框獲得和失去焦點(diǎn)時(shí)狀態(tài)顯示的方法,可實(shí)現(xiàn)判斷輸入框的焦點(diǎn)狀態(tài)設(shè)置不同樣式的功能,是非常實(shí)用的技巧,需要的朋友可以參考下2015-01-01

