這篇文章給大家介紹JavaScript中怎么評估用戶輸入密碼的強度,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
10年積累的成都做網(wǎng)站、網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站策劃后付款的網(wǎng)站建設流程,更有龍泉免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
原有代碼請查看:
首先我們來改善一下上面博友的驗證函數(shù)為如下代碼:
var PagePage = Page || {}; PagePage.Utility = Page.Utility || {}; PagePage.Utility.Registration = Page.Utility.Registration || {}; //獲取密碼強度 Page.Utility.Registration.getPasswordLevel = function (password) { if (password == null || password == '') return 0; if (password.length <= 4) return 0; //密碼太短 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) //小寫 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; } };
然后來創(chuàng)建View Model,但是引用Knockout之前,我們首先要引用Knockout的Js類庫(具體介紹請查看Knockout應用開發(fā)指南的系列教程)
View model代碼如下:
var viewModel = { Password: ko.observable(""), Ocolor: "#eeeeee" };
對于密碼強度以及顏色的值依賴于密碼字符串的值,所以我們需要為他們聲明依賴屬性,代碼如下:
viewModel.PasswordLevel = ko.dependentObservable(function () { return Page.Utility.Registration.getPasswordLevel(this.Password()); }, viewModel); viewModel.Lcolor = ko.dependentObservable(function () { //根據(jù)密碼強度判斷***個格顯示的背景色 return this.PasswordLevel() == 0 ? this.Ocolor : (this.PasswordLevel() == 1 ? "#FF0000" : (this.PasswordLevel() == 2 ? "#FF9900" : "#33CC00")) }, viewModel); viewModel.Mcolor = ko.dependentObservable(function () { //根據(jù)密碼強度判斷第二個格顯示的背景色 return this.PasswordLevel() < 2 ? this.Ocolor : (this.PasswordLevel() == 2 ? "#FF9900" : "#33CC00") }, viewModel); viewModel.Hcolor = ko.dependentObservable(function () { //根據(jù)密碼強度判斷第三個格顯示的背景色 return this.PasswordLevel() < 3 ? this.Ocolor : "#33CC00" }, viewModel);
然后使用applyBindings方法將view model綁定到該頁面,你可以使用jQuery的ready函數(shù)來執(zhí)行該綁定代碼,也可以在頁面最下方執(zhí)行綁定代碼,我們這里使用了jQuery,代碼如下:
$((function () { ko.applyBindings(viewModel); }));
***,我們再看看這些值怎么動態(tài)綁定到HTML元素上的,請查看如下代碼(其中使用了afterkeydown代替了onKeyUp和onBlur):
然后就OK,運行代碼查看,一模一樣的功能展示出來了。
如果去掉為驗證而改善的代碼,總代碼肯定是比原有的方式少的。
完整版代碼如下:
關于JavaScript中怎么評估用戶輸入密碼的強度就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。