日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
用JavaScript評估用戶輸入密碼的強(qiáng)度(Knockout版)

早上看到博友6點(diǎn)多發(fā)的一篇關(guān)于密碼強(qiáng)度的文章(連接),甚是感動(周末大早上還來發(fā)文)。

我們來看看如果使用Knockout更簡單的來實(shí)現(xiàn)密碼強(qiáng)度的驗(yàn)證。

原有代碼請查看:

 
 
 
  1.     
  2.     
  3.     
  4.     輸入密碼:
  5.     
  6.     密碼強(qiáng)度:
  7.     
  8.         height="23" style='display: inline'>
  9.         
  10.             
  11.                 弱
  12.             
  13.             
  14.                 中
  15.             
  16.             
  17.                 強(qiáng)
  18.             
  19.         
  20.     
  21.     

首先我們來改善一下上面博友的驗(yàn)證函數(shù)為如下代碼:

 
 
 
  1. var PagePage = Page || {};
  2. PagePage.Utility = Page.Utility || {};
  3. PagePage.Utility.Registration = Page.Utility.Registration || {};
  4. //獲取密碼強(qiáng)度
  5. Page.Utility.Registration.getPasswordLevel = function (password) {
  6.     if (password == null || password == '')
  7.         return 0;
  8.     if (password.length <= 4)
  9.         return 0; //密碼太短
  10.     var Modes = 0;
  11.     for (i = 0; i < password.length; i++) {
  12.         Modes |= CharMode(password.charCodeAt(i));
  13.     }
  14.     return bitTotal(Modes);
  15.     //CharMode函數(shù) 
  16.     function CharMode(iN) {
  17.         if (iN >= 48 && iN <= 57) //數(shù)字
  18.             return 1;
  19.         if (iN >= 65 && iN <= 90) //大寫字母
  20.             return 2;
  21.         if (iN >= 97 && iN <= 122) //小寫
  22.             return 4;
  23.         else
  24.             return 8; //特殊字符 
  25.     }
  26.     //bitTotal函數(shù)
  27.     function bitTotal(num) {
  28.         modes = 0;
  29.         for (i = 0; i < 4; i++) {
  30.             if (num & 1) modes++;
  31.             num >>>= 1;
  32.         }
  33.         return modes;
  34.     }
  35. };

然后來創(chuàng)建View Model,但是引用Knockout之前,我們首先要引用Knockout的Js類庫(具體介紹請查看Knockout應(yīng)用開發(fā)指南的系列教程)
View model代碼如下:

 
 
 
  1. var viewModel = {
  2.     Password: ko.observable(""),
  3.     Ocolor: "#eeeeee"
  4. };

對于密碼強(qiáng)度以及顏色的值依賴于密碼字符串的值,所以我們需要為他們聲明依賴屬性,代碼如下:

 
 
 
  1. viewModel.PasswordLevel = ko.dependentObservable(function () {
  2.     return Page.Utility.Registration.getPasswordLevel(this.Password());
  3. }, viewModel);
  4. viewModel.Lcolor = ko.dependentObservable(function () {
  5.     //根據(jù)密碼強(qiáng)度判斷***個(gè)格顯示的背景色
  6.     return this.PasswordLevel() == 0 ? this.Ocolor : (this.PasswordLevel() == 1 ? "#FF0000" : (this.PasswordLevel() == 2 ? "#FF9900" : "#33CC00"))
  7. }, viewModel);
  8. viewModel.Mcolor = ko.dependentObservable(function () {
  9.     //根據(jù)密碼強(qiáng)度判斷第二個(gè)格顯示的背景色
  10.     return this.PasswordLevel() < 2 ? this.Ocolor : (this.PasswordLevel() == 2 ? "#FF9900" : "#33CC00")
  11. }, viewModel);
  12. viewModel.Hcolor = ko.dependentObservable(function () {
  13.     //根據(jù)密碼強(qiáng)度判斷第三個(gè)格顯示的背景色
  14.     return this.PasswordLevel() < 3 ? this.Ocolor : "#33CC00"
  15. }, viewModel);

然后使用applyBindings方法將view model綁定到該頁面,你可以使用jQuery的ready函數(shù)來執(zhí)行該綁定代碼,也可以在頁面最下方執(zhí)行綁定代碼,我們這里使用了jQuery,代碼如下:

 
 
 
  1. $((function () {
  2.     ko.applyBindings(viewModel);
  3. }));

***,我們再看看這些值怎么動態(tài)綁定到HTML元素上的,請查看如下代碼(其中使用了afterkeydown代替了onKeyUp和onBlur):

 
 
 
  1. 輸入密碼:

  2. 密碼強(qiáng)度:
  3.     height="23" style='display: inline'>
  4.     
  5.         
  6.         
  7.         強(qiáng)
  8.     

然后就OK,運(yùn)行代碼查看,一模一樣的功能展示出來了。

如果去掉為驗(yàn)證而改善的代碼,總代碼肯定是比原有的方式少的。

完整版代碼如下:

 
 
 
  1.     
  2.     
  3.     
  4.     
  5.     
  6.     輸入密碼:
  7.     
  8.     密碼強(qiáng)度:
  9.     
  10.         height="23" style='display: inline'>
  11.         
  12.             
  13.                 弱
  14.             
  15.             
  16.                 中
  17.             
  18.             
  19.                 強(qiáng)
  20.             
  21.         
  22.     
  23.     

原文:http://www.cnblogs.com/TomXu/archive/2011/11/27/2264876.html

【系列文章】

  1. Knockout應(yīng)用開發(fā)指南之創(chuàng)建自定義綁定
  2. Knockout應(yīng)用開發(fā)指南之入門介紹
  3. Knockout應(yīng)用開發(fā)指南之監(jiān)控屬性(Observables)
  4. Knockout應(yīng)用開發(fā)指南之綁定語法
  5. Knockout應(yīng)用開發(fā)指南之模板綁定

分享標(biāo)題:用JavaScript評估用戶輸入密碼的強(qiáng)度(Knockout版)
分享URL:http://www.dlmjj.cn/article/cojiepd.html