<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/虛擬化技術/

    友情博客

    多線程并發編程

    開源技術

    持久層技術相關

    搜索

    •  

    積分與排名

    • 積分 - 359721
    • 排名 - 154

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲无线观看国产精品| 2015日韩永久免费视频播放| 免费国产黄网站在线观看动图| 亚洲欧美中文日韩视频| 亚洲中文字幕无码久久| 亚洲一本一道一区二区三区| 天天爽亚洲中文字幕| 国产午夜亚洲精品国产| 亚洲精品无码永久在线观看男男| 亚洲色欲色欲www在线播放| 亚洲欧美日韩中文高清www777| 国产精品亚洲一区二区麻豆| 亚洲日本久久久午夜精品| 国产精品亚洲一区二区麻豆| 亚洲av无码日韩av无码网站冲| 狠狠热精品免费观看| 成人a毛片免费视频观看| 国产成人无码区免费内射一片色欲| 免费无码黄网站在线看| 免费人成在线观看网站品爱网 | 国产亚洲欧美日韩亚洲中文色| 蜜桃传媒一区二区亚洲AV | 久久夜色精品国产亚洲| 亚洲AV午夜福利精品一区二区| 久久精品国产亚洲AV麻豆网站| 亚洲另类视频在线观看| 亚洲另类无码专区首页| 香蕉国产在线观看免费| 无码人妻精品中文字幕免费| 免费h片在线观看网址最新| 波多野结衣久久高清免费| 亚洲国产精品自在拍在线播放| 国产A在亚洲线播放| 亚洲欧洲在线播放| 亚洲av无码专区在线观看下载| 无码免费又爽又高潮喷水的视频 | 人妻视频一区二区三区免费| 波多野结衣中文一区二区免费 | 成人免费看片又大又黄| 亚洲国产精品13p| 久久精品国产精品亚洲艾|