1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- $.fn.passwordStrength = function( options ){
- return this.each(function(){
- var that = this;that.opts = {};
- that.opts = $.extend({}, $.fn.passwordStrength.defaults, options);
-
- that.div = $(that.opts.targetDiv);
- that.defaultClass = that.div.attr('class');
-
- that.percents = (that.opts.classes.length) ? 100 / that.opts.classes.length : 100;
-
- v = $(this)
- .keyup(function(){
- if( typeof el == "undefined" )
- this.el = $(this);
- var s = getPasswordStrength (this.value);
- var p = this.percents;
- var t = Math.floor( s / p );
-
- if( 100 <= s )
- t = this.opts.classes.length - 1;
-
- this.div
- .removeAttr('class')
- .addClass( this.defaultClass )
- .addClass( this.opts.classes[ t ] );
-
- });
- // .after('<a href="#">Generate Password</a>')
- // .next()
- // .click(function(){
- // $(this).prev().val( randomPassword() ).trigger('keyup');
- // return false;
- // });
- });
-
- function getPasswordStrength(H){
- var D=(H.length);
- if(D>5){
- D=5
- }
- var F=H.replace(/[0-9]/g,"");
- var G=(H.length-F.length);
- if(G>3){G=3}
- var A=H.replace(/\W/g,"");
- var C=(H.length-A.length);
- if(C>3){C=3}
- var B=H.replace(/[A-Z]/g,"");
- var I=(H.length-B.length);
- if(I>3){I=3}
- var E=((D*10)-20)+(G*10)+(C*15)+(I*10);
- if(E<0){E=0}
- if(E>100){E=100}
- return E
- }
-
- function randomPassword() {
- var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$_+";
- var size = 10;
- var i = 1;
- var ret = ""
- while ( i <= size ) {
- $max = chars.length-1;
- $num = Math.floor(Math.random()*$max);
- $temp = chars.substr($num, 1);
- ret += $temp;
- i++;
- }
- return ret;
- }
-
- };
-
- $.fn.passwordStrength.defaults = {
- classes : Array('is10','is20','is30','is40','is50','is60','is70','is80','is90','is100'),
- targetDiv : '#passwordStrengthDiv',
- cache : {}
- }
|