后面3种有什么好写法么?
长度那个我直接用的.length来判断的。。

解决方案 »

  1.   

    长度在8位以上的,只包含有a-z或者A-Z或者0-9或者_其中1种的,强度判定为1
    这种我这样写不知道对不对:
    /[0-9]+[a-z]+/.test(password)||/[0-9]+[A-Z]+/.test(password)||/[0-9]+_+/.test(password)||/[a-z]+[A-Z]+/.test(password)||/[a-z]+_+/.test(password)||/[A-Z]+_+/.test(password)
      

  2.   

    var pwds  = ["12", "123456A#", "abcdefghi", "abcdefghi1", "abcdefghi1A", "abcdefghi1A#"];
    for(var i in pwds)
    {
        alert(pwds[i] + " 的密码强度为" + Evaluate(pwds[i]));
    }function Evaluate(pwd)
    {
        return pwd.replace(/^(?:([a-z])|([A-Z])|([0-9])|(.)){9,}|(.){4,8}|(.){1,3}$/g, "$1$2$3$4$5").length;
    }
      

  3.   

    参考http://www.cnblogs.com/0009/archive/2007/04/24/725568.htmlhttp://www.cnblogs.com/0009/archive/2007/05/08/738888.html
      

  4.   

    最好配合js来判断<div id="div1">
                <input type="text" id="txt1" maxlength="20" />
                <input type="button" value="check" onclick="check()" />
    </div><script type="text/javascript">
    String.prototype.trim = function()
    {
    return this.replace(/(^\s*)|(\s*$)/g, "");
    }function check()
    {
        var val=document.getElementById('txt1').value.trim();
        if(val.length>=4&&val.length<=20)
        {
            var patt=/^[a-zA-Z0-9_]{4,20}$/;
            if(!patt.test(val)) {alert('只能包含a-zA-Z0-9_字符');return;}
            
            if(val.length>8)
            {
                var patt1=/[a-z]/;
                var patt2=/[A-Z]/;
                var patt3=/[0-9]/;
                var patt4=/[_]/;
                
                var arr=new Array();
                arr[0]=patt1.test(val);          
                arr[1]=patt2.test(val);          
                arr[2]=patt3.test(val);          
                arr[3]=patt4.test(val); 
                         
                var Numtrue=0;
                for(var i=0;i<arr.length;i++)         
                {
                    if(arr[i]==true) Numtrue++;
                }
                switch(Numtrue)
                {
                    case 0:alert('只能包含a-zA-Z0-9_字符');break;
                    case 1:alert('强度为1');break;
                    case 2:alert('强度为2');break;
                    case 3:alert('强度为3');break;
                    case 4:alert('强度为4');break;
                }        }
            else
            {
                alert('强度为1');
            }
        }
        else
        {
            alert('要求4-20位');
        }
    }
    </script>
      

  5.   

    function getPrivacy(pwd){
    var i=0,privacy = [],result=0;
    if(/^\w{4,8}$/.test(pwd)){
    result = 1;
    }else{
    if(/[_]/.test(pwd))privacy[i++]=1
    if(/[0-9]/.test(pwd))privacy[i++]=1
    if(/[a-z]/.test(pwd))privacy[i++]=1
    if(/[A-Z]/.test(pwd))privacy[i++]=1
    while(i--)result+=privacy[i]
    }
    alert(result);
    return result;
    }getPrivacy("12345Aa_")
    getPrivacy("12345678")
    getPrivacy("12345678A")
    getPrivacy("12345678Aa")
    getPrivacy("12345678Aa_")
      

  6.   

    不错不错后面2L,结合JS让人更容易理解,正则也就用得简单很多比起8,9L的例子来说,各有特色!谢谢!结贴!