62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
$.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 ]);
|
|
})
|
|
});
|
|
//»ñÈ¡ÃÜÂëÇ¿¶È
|
|
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
|
|
}
|
|
|
|
};
|
|
|
|
$.fn.passwordStrength.defaults = {
|
|
classes : Array('is10','is20','is30','is40','is50','is60','is70','is80','is90','is100'),
|
|
targetDiv : '#passwordStrengthDiv',
|
|
cache : {}
|
|
}
|
|
$.passwordStrength = {};
|
|
$.passwordStrength.getRandomPassword = function(size){
|
|
var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
var size = size || 8;
|
|
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;
|
|
} |