检测字符种类 验证强度

var agt = navigator.userAgent.toLowerCase();
var is_op = (agt.indexOf("opera") != -1);
var is_ie = (agt.indexOf("msie") != -1) && document.all && !is_op;
var is_mac = (agt.indexOf("mac") != -1);
var is_gk = (agt.indexOf("gecko") != -1);
var is_sf = (agt.indexOf("safari") != -1);
  
function gff(str, pfx) {
    var i = str.indexOf(pfx);
    if (i != -1) {
    var v = parseFloat(str.substring(i + pfx.length));
    if (!isNaN(v)) {
    return v;
    }
    }
    return null;
}
  
function Compatible() {
    if (is_ie && !is_op && !is_mac) {
        var v = gff(agt, "msie ");
        if (v != null) {
            return (v >= 6.0);
        }
    }
    if (is_gk && !is_sf) {
        var v = gff(agt, "rv:");
        if (v != null) {
            return (v >= 1.4);
        } else {
            v = gff(agt, "galeon/");
            if (v != null) {
              return (v >= 1.3);
            }
        }
    }
    if (is_sf) {
        var v = gff(agt, "applewebkit/");
        if (v != null) {
            return (v >= 124);
        }
    }
    return false;
}
 
/* We also try to create an xmlhttp object to see if the browser supports it */
var isBrowserCompatible = Compatible();

//CharMode函数 
//测试某个字符是属于哪一类. 
function CharMode(iN){ 
    if (iN>=48 && iN <=57) //数字 
        return 1; 
    if (iN>=65 && iN <=90) //大写字母 
        return 2; 
    if (iN>=97 && iN <=122) //小写 
        return 4; 
    else 
        return 8; //特殊字符 


//bitTotal函数 
//计算出当前密码当中一共有多少种模式 
function bitTotal(num){ 
    modes=0; 
    for (i=0;i<4;i++){ 
        if (num & 1) modes++; 
        num>>>=1; 
    } 
    return modes; 

//checkStrong函数 
//返回密码的强度级别 
function checkPasswdRate(sPW){ 
    if (sPW.length<=5) 
        return 0; //密码太短 
       
    Modes=0; 
    for (i=0;i<sPW.length;i++){ 
        //测试每一个字符的类别并统计一共有多少种模式. 
        Modes |= CharMode(sPW.charCodeAt(i)); 
    } 
    return bitTotal(Modes); 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值