验证密码强度js

来源:互联网 发布:台州淘宝美工招聘网 编辑:程序博客网 时间:2024/05/27 01:24
<script language="javascript">
    
    function allNumber(v)
    {
        var reg 
= /^[0-9]*$/;
        
if(reg.test(v))
        {    
            
return true;
        }
        
return false;
    }
    
    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;//特殊字符
    }

    
//计算出当前密码当中一共有多少种模式
    function bitTotal(num){
        var modes
=0;
        
for(i=0;i<4;i++){
            
if(num&1)
                modes
++;
            num 
>>=1;
        }
        
return    modes;
    }
        
    
//返回密码的强度级别
    function checkStrong(sPW){
        
if(sPW.length<8)
            
return 0;//密码太短 
        var Modes=0;
        
for(i=0;i<sPW.length;i++){
        
//测试每一个字符的类别并统计一共有多少种模式.
        Modes|=CharMode(sPW.charCodeAt(i));
        }
    
//    alert(bitTotal(Modes));
        return bitTotal(Modes);
    }

    
    function showStrongPic()
    {
        var v 
= document.getElementById('new_passwd').value;
        var m 
= checkStrong(v);
        
if(m < 2)
        {
            document.getElementById(
'lowPic').style.display="";
            document.getElementById(
'midPic').style.display="none";
            document.getElementById(
'highPic').style.display="none";
        }
        
else if(m==2)
        {
            document.getElementById(
'lowPic').style.display="none";
            document.getElementById(
'midPic').style.display="";
            document.getElementById(
'highPic').style.display="none";
        }
        
else 
        {
            document.getElementById(
'lowPic').style.display="none";
            document.getElementById(
'midPic').style.display="none";
            document.getElementById(
'highPic').style.display="";
        }
    }
    
    function checkForm()
    {
        v 
= document.getElementById('new_passwd').value;
        
if(v=="")
        {
            alert(
"您尚未填写新密码。");
            select_focus(
'new_passwd');
            
return false;
        }
        
if(v.length < 8 || allNumber(v) || v.length > 16)
        {        
            alert(
"新密码格式非法,密码由8-16个字符组成,区分大小写(不能是纯数字)。");
            select_focus(
'new_passwd');
            
return false;
        }

        var w 
= document.getElementById('new_passwd1').value;
        
if(w == "")
        {
            alert(
"您尚未重复填写新密码。");
            select_focus(
'new_passwd');
            
return false;
        }
        
if(w != v)
        {
            alert(
"两次输入的密码不匹配,请重新输入。");
            select_focus(
'new_passwd');
            
return false;
        }
        document.myform.submit();
    }
</script>
0 0