我试图从 JSLint 验证我的 JQuery 代码并得到很多错误。请让我知道如何解决。
这是下面的密码强度计代码
$.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<4){
D=0;
}
if(D>5){
D=5;
}
// This is patern for non-numeric characters
var F=H.replace(/[0-9]/g,"");
var G=(H.length-F.length);
if(G>3){
G=3;
}
// This is patern for uppercase and lowercase evaluation
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;
}
// This is patern for Special Characters
var P=H.replace(/^[@#$^&]*$/,"");
var Q=(H.length-P.length);
if(Q>3){
Q=3;
}
var E=((D*10)-20)+(G*10)+(C*15)+(I*10)+(Q*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;
}
};
$(document)
.ready(function(){
$('input[name="password"]').passwordstrength({targetDiv: '#pwd_strength',classes : Array('weak','medium','strong','complex')});
});