<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 167,  comments - 30,  trackbacks - 0
    TitleType text here...
    /* @projectDescription jQuery Password Strength Plugin - A jQuery plugin to provide accessibility functions
     * @author Tane Piper (digitalspaghetti@gmail.com)
     * @version 2.0
     * @website: http://digitalspaghetti.me.uk/digitalspaghetti
     http://simplythebest.net/scripts/ajax/ajax_password_strength.html
     * @license MIT License: http://www.opensource.org/licenses/mit-license.php
     * 
     * === Changelog ===
     * Version 2.1 (18/05/2008)
     * Added a jQuery method to add a new rule: jQuery('input[@type=password]').pstrength.addRule(name, method, score, active)
     * Added a jQuery method to change a rule score: jQuery('input[@type=password]').pstrength.changeScore('one_number', 50);
     * Added a jQuery method to change a rules active state: jQuery('input[@type=password]').pstrength.ruleActive('one_number', false);
     * Hide the 'password to short' span if the password is more than the min chars
     * 
     * Version 2.0 (17/05/2008)
     * Completly re-wrote the plugin from scratch.  Plugin now features lamda functions for validation and
     * custom validation rules 
     * Plugin now exists in new digitalspaghetti. namespace to stop any conflits with other plugins.
     * Updated documentation
     * 
     * Version 1.4 (12/02/2008)
     * Added some improvments to i18n stuff from Raffael Luthiger.
     * Version 1.3 (02/01/2008)
     * Changing coding style to more OO
     * Added default messages object for i18n
     * Changed password length score to Math.pow (thanks to Keith Mashinter for this suggestion)
     * Version 1.2 (03/09/2007)
     * Added more options for colors and common words
     * Added common words checked to see if words like 'password' or 'qwerty' are being entered
     * Added minimum characters required for password
     * Re-worked scoring system to give better results
     * Version 1.1 (20/08/2007)
     * Changed code to be more jQuery-like
     * Version 1.0 (20/07/2007)
     * Initial version.
     
    */


    // Create our namespaced object
    /*global window */
    /*global jQuery */
    /*global digitalspaghetti*/
    window.digitalspaghetti 
    = window.digitalspaghetti || {};
    digitalspaghetti.password 
    = {    
        'defaults' : 
    {
            'displayMinChar': 
    true,
            'minChar': 
    6,
            'minCharText': '',
            'colors': [
    "#f00""#c06""#f60""#3c0""#3f0"],
            'scores': [
    20304350],
            'verdicts':    ['弱', '一般', '較好', '很好', '極佳'],
            'raisePower': 
    1.4,
            'debug': 
    false
        }
    ,
        'ruleScores' : 
    {
            'length': 
    0,
            'lowercase': 
    1,
            'uppercase': 
    3,
            'one_number': 
    3,
            'three_numbers': 
    5,
            'one_special_char': 
    3,
            'two_special_char': 
    5,
            'upper_lower_combo': 
    2,
            'letter_number_combo': 
    2,
            'letter_number_char_combo': 
    2
        }
    ,
        'rules' : 
    {
            'length': 
    true,
            'lowercase': 
    true,
            'uppercase': 
    true,
            'one_number': 
    true,
            'three_numbers': 
    true,
            'one_special_char': 
    true,
            'two_special_char': 
    true,
            'upper_lower_combo': 
    true,
            'letter_number_combo': 
    true,
            'letter_number_char_combo': 
    true
        }
    ,
        'validationRules': 
    {
            'length': 
    function (word, score) {
                digitalspaghetti.password.tooShort 
    = false;
                
    var wordlen = word.length;
                
    var lenScore = Math.pow(wordlen, digitalspaghetti.password.options.raisePower);
                
    if (wordlen < digitalspaghetti.password.options.minChar) {
                    lenScore 
    = (lenScore - 100);
                    digitalspaghetti.password.tooShort 
    = true;
                }

                
    return lenScore;
            }
    ,
            'lowercase': 
    function (word, score) {
                
    return word.match(/[a-z]/&& score;
            }
    ,
            'uppercase': 
    function (word, score) {
                
    return word.match(/[A-Z]/&& score;
            }
    ,
            'one_number': 
    function (word, score) {
                
    return word.match(/\d+/&& score;
            }
    ,
            'three_numbers': 
    function (word, score) {
                
    return word.match(/(.*[0-9].*[0-9].*[0-9])/&& score;
            }
    ,
            'one_special_char': 
    function (word, score) {
                
    return word.match(/.[!,@,#,$,%,\^,&,*,?,_,~]/&& score;
            }
    ,
            'two_special_char': 
    function (word, score) {
                
    return word.match(/(.*[!,@,#,$,%,\^,&,*,?,_,~].*[!,@,#,$,%,\^,&,*,?,_,~])/&& score;
            }
    ,
            'upper_lower_combo': 
    function (word, score) {
                
    return word.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/&& score;
            }
    ,
            'letter_number_combo': 
    function (word, score) {
                
    return word.match(/([a-zA-Z])/&& word.match(/([0-9])/&& score;
            }
    ,
            'letter_number_char_combo' : 
    function (word, score) {
                
    return word.match(/([a-zA-Z0-9].*[!,@,#,$,%,\^,&,*,?,_,~])|([!,@,#,$,%,\^,&,*,?,_,~].*[a-zA-Z0-9])/&& score;
            }

        }
    ,
        'attachWidget': 
    function (element) {
            
    var output = ['<div id="password-strength">'];
            
    if (digitalspaghetti.password.options.displayMinChar && !digitalspaghetti.password.tooShort) {
                output.push('
    <span class="password-min-char">+ digitalspaghetti.password.options.minCharText.replace('%d', digitalspaghetti.password.options.minChar) + '</span>');
            }

            output.push('
    <span class="password-strength-bar"></span>');
            output.push('
    </div>');
            output 
    = output.join('');
            jQuery(element).after(output);
        }
    ,
        'debugOutput': 
    function (element) {
            
    if (typeof console.log === 'function') {
                console.log(digitalspaghetti.password);    
            }
     else {
                alert(digitalspaghetti.password);
            }

        }
    ,
        'addRule': 
    function (name, method, score, active) {
            digitalspaghetti.password.rules[name] 
    = active;
            digitalspaghetti.password.ruleScores[name] 
    = score;
            digitalspaghetti.password.validationRules[name] 
    = method;
            
    return true;
        }
    ,
        'init': 
    function (element, options) {
            digitalspaghetti.password.options 
    = jQuery.extend({}, digitalspaghetti.password.defaults, options);
            digitalspaghetti.password.attachWidget(element);
            jQuery(element).keyup(
    function () {
                digitalspaghetti.password.calculateScore(jQuery(
    this).val());
            }
    );
            
    if (digitalspaghetti.password.options.debug) {
                digitalspaghetti.password.debugOutput();
            }

        }
    ,
        'calculateScore': 
    function (word) {
            digitalspaghetti.password.totalscore 
    = 0;
            digitalspaghetti.password.width 
    = 0;
            
    for (var key in digitalspaghetti.password.rules) if (digitalspaghetti.password.rules.hasOwnProperty(key)) {
                
    if (digitalspaghetti.password.rules[key] === true{
                    
    var score = digitalspaghetti.password.ruleScores[key];
                    
    var result = digitalspaghetti.password.validationRules[key](word, score);
                    
    if (result) {
                        digitalspaghetti.password.totalscore 
    += result;
                    }

                }

                
    if (digitalspaghetti.password.totalscore <= digitalspaghetti.password.options.scores[0]) {
                    digitalspaghetti.password.strColor 
    = digitalspaghetti.password.options.colors[0];
                    digitalspaghetti.password.strText 
    = digitalspaghetti.password.options.verdicts[0];
                    digitalspaghetti.password.width 
    =  "3";
                }
     else if (digitalspaghetti.password.totalscore > digitalspaghetti.password.options.scores[0&& digitalspaghetti.password.totalscore <= digitalspaghetti.password.options.scores[1]) {
                    digitalspaghetti.password.strColor 
    = digitalspaghetti.password.options.colors[1];
                    digitalspaghetti.password.strText 
    = digitalspaghetti.password.options.verdicts[1];
                    digitalspaghetti.password.width 
    =  "6";
                }
     else if (digitalspaghetti.password.totalscore > digitalspaghetti.password.options.scores[1&& digitalspaghetti.password.totalscore <= digitalspaghetti.password.options.scores[2]) {
                    digitalspaghetti.password.strColor 
    = digitalspaghetti.password.options.colors[2];
                    digitalspaghetti.password.strText 
    = digitalspaghetti.password.options.verdicts[2];
                    digitalspaghetti.password.width 
    =  "9";
                }
     else if (digitalspaghetti.password.totalscore > digitalspaghetti.password.options.scores[2&& digitalspaghetti.password.totalscore <= digitalspaghetti.password.options.scores[3]) {
                    digitalspaghetti.password.strColor 
    = digitalspaghetti.password.options.colors[3];
                    digitalspaghetti.password.strText 
    = digitalspaghetti.password.options.verdicts[3];
                    digitalspaghetti.password.width 
    =  "12";
                }
     else {
                    digitalspaghetti.password.strColor 
    = digitalspaghetti.password.options.colors[4];
                    digitalspaghetti.password.strText 
    = digitalspaghetti.password.options.verdicts[4];
                    digitalspaghetti.password.width 
    =  "15";
                }

                jQuery('.password
    -strength-bar').stop();
                
                
    if (digitalspaghetti.password.options.displayMinChar && !digitalspaghetti.password.tooShort) {
                    jQuery('.password
    -min-char').hide();
                }
     else {
                    jQuery('.password
    -min-char').show();
                }

                
                jQuery('.password
    -strength-bar').animate({opacity: 0.5}, 'fast', 'linear', function () {
                    jQuery(
    this).css({'display': 'block', 'background-color': digitalspaghetti.password.strColor, 'width': digitalspaghetti.password.width + "%"}).text(digitalspaghetti.password.strText);
                    jQuery(
    this).animate({opacity: 1}, 'fast', 'linear');
                }
    );
            }

        }

    }
    ;

    jQuery.extend(jQuery.fn, 
    {
        'pstrength': 
    function (options) {
            
    return this.each(function () {
                digitalspaghetti.password.init(
    this, options);
            }
    );
        }

    }
    );
    jQuery.extend(jQuery.fn.pstrength, 
    {
        'addRule': 
    function (name, method, score, active) {
            digitalspaghetti.password.addRule(name, method, score, active);
            
    return true;
        }
    ,
        'changeScore': 
    function (rule, score) {
            digitalspaghetti.password.ruleScores[rule] 
    = score;
            
    return true;
        }
    ,
        'ruleActive': 
    function (rule, active) {
            digitalspaghetti.password.rules[rule] 
    = active;
            
    return true;
        }

    }
    );
    上述為jquery_passstrength.js
    下面為測試代碼:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>jquert-password-strength</title>
    <script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>  
    <script type="text/javascript" src="js/digitalspaghetti.password.js"></script>
    <script type="text/javascript">
    $(
    function() {
        $('#user_password').pstrength();
    }
    );
    </script>
    <style>
    .pstrength-minchar 
    {
    font-size 
    : 10px;
    }

    input 
    {
        width
    :180px;
        height
    :12px;
        line-height
    :12px;
        padding
    :4px 0px;
        border
    : #cfcfcf 1px solid;
        color
    : #585858;
    }

    password-strength,.password-strength-bar 
    {
        width
    :300px;
    }

    </style>
    </head>

    <body>
    密碼:
    <input type="password" id="user_password" name="user_password" />
    </body>
    </html>
    ============================================================
    實現2:
    =============================================================

    <html>
    <head>
    <title>密碼強度檢測Demo</title>
    <script type="text/javascript">
     function passwordTest(obj){
      var t=obj.value;
      var id=getResult(t);
      //定義對應的消息提示
      var msg=new Array(4);
      msg[0]="密碼過短。";
      msg[1]="密碼強度差。";
      msg[2]="密碼強度良好。";
      msg[3]="密碼強度高。";
      var sty=new Array(4);
      sty[0]=-45;
      sty[1]=-30;
      sty[2]=-15;
      sty[3]=0;
      var col = new Array(4);
      col[0] = "gray";
      col[1] = "#50AEDD";
      col[2] = "#FF8213";
      col[3] = "green";
      //設置顯示效果
      var bImg="/img/pwdlen_dSIPeEGQWxfO.gif" //一張顯示用的圖片
      var sWidth=300;
      var sHeight=15;
      var Bobj=document.getElementById("nodetext");

      Bobj.style.fontSize="12px";
      Bobj.style.color=col[id];
      Bobj.style.width=sWidth + "px";
      Bobj.style.height=sHeight + "px";
      Bobj.style.lineHeight=sHeight + "px";
      Bobj.style.background="url(" + bImg + ") no-repeat left " + sty[id] + "px";
      Bobj.style.textIndent="20px";
      Bobj.innerHTML="檢測提示:" + msg[id];
     }
     //定義檢測函數,返回0/1/2/3分別代表無效/差/一般/強
     function getResult(s){
      if(s.length < 4){
       return 0;
      }
      var ls = 0;
      if (s.match(/[a-z]/ig)){
       ls++;
      }
      if (s.match(/[0-9]/ig)){
       ls++;
      }
       if (s.match(/(.[^a-z0-9])/ig)){
       ls++;
      }
      if (s.length < 6 && ls > 0){
       ls--;
      }
      return ls
     }
    </script>
    </head>
    <body>
    <form name="form1">
     <label for="pwd">用戶密碼</label>
     <input type="password" name="pwd" onKeyUp="passwordTest(this)" />
     <div id="nodetext"></div>
    </form>
    </body>
    </html>

    posted on 2010-12-30 14:47 David1228 閱讀(2503) 評論(0)  編輯  收藏 所屬分類: JQuery

    <2010年12月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章檔案

    新聞分類

    新聞檔案

    相冊

    收藏夾

    Java

    Linux知識相關

    Spring相關

    云計算/Linux/虛擬化技術/

    友情博客

    多線程并發編程

    開源技術

    持久層技術相關

    搜索

    •  

    積分與排名

    • 積分 - 359724
    • 排名 - 154

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 永久在线观看免费视频| 久久精品九九亚洲精品天堂| 久久亚洲免费视频| 麻豆安全免费网址入口| 亚洲成人激情小说| 亚洲黄色免费观看| 亚洲综合图色40p| 国产在线观看免费视频播放器| 精品国产无限资源免费观看| a级成人免费毛片完整版| 黄色大片免费网站| 亚洲欧美熟妇综合久久久久| 亚洲国产高清视频在线观看| 亚洲不卡中文字幕无码| 国产亚洲成人久久| 人人狠狠综合久久亚洲高清| 日韩精品视频免费观看| 亚洲日本在线免费观看| 久久国产精品萌白酱免费| 91福利免费网站在线观看| jizz日本免费| 国产高潮久久免费观看| 一级毛片免费一级直接观看| 色欲aⅴ亚洲情无码AV| 亚洲国产精品无码观看久久| 亚洲色大成网站www| 亚洲中文字幕日本无线码| 亚洲香蕉久久一区二区| 亚洲国产成+人+综合| 亚洲国产一区在线观看| 亚洲伊人久久大香线蕉| 亚洲成年人电影在线观看| 亚洲成aⅴ人片在线观| 久久久亚洲AV波多野结衣| 亚洲精品午夜在线观看| 亚洲成a人片77777群色| 亚洲精品人成网在线播放影院| 国产精品亚洲精品观看不卡| 亚洲综合色婷婷在线观看| 亚洲AV永久无码天堂影院| 日日摸日日碰夜夜爽亚洲|