a.口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。 
b.口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)
和特殊字符每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
最好是用正则表达式写。有做过这样例子的朋友请帮帮忙。

解决方案 »

  1.   

    function  check(str)
    {
    var pattern = /^w{8,12}$/;
    if(pattern.exec(str))
    {
        for(var i = 0; i < str.length/2; i++)
        {
            if(str.replace(new RegExp(str.substr(0,i+1),"gm"),"").length == 0)
            {
                return false;
            }
        }
        return true;
    }
    else
    {
        return false;
    }

    }
      

  2.   

    function  check(str)
    {
    var pattern = /^w{8,12}$/;
    if(pattern.exec(str))
    {
        for(var i = 0; i < str.length/2; i++)
        {
            if(str.replace(new RegExp(str.substr(0,i+1),"gm"),"").length == 0)
            {
                return false;
            }
        }
        return true;
    }
    else
    {
        return false;
    }

    }
      

  3.   

    从用户的角度,我抗议这个强制规则。我的许多帐号就是被这些自以为是的规则给弄得过不几天就忘了的。
    网络这么大,想让用户为了使用你而必须把密码记在本上(何况,这样反而还不安全,难道都记脑子里?你这样让人记吗),太不现实了。更可能的结果是不用你了。密码,作下长度限制和SQL注入限制就差不多了,其余是用户自由,不要太干涉。你可以给出信息提示,不要这样强行限制。
      

  4.   

    <html>
    <head>
    </head>
    <script> function test(obj){
    var str=obj.value;
    if(validate(str)){
    alert("合法的字符串!");
    }else{
    alert("非法的字符串!");
    }

    }
    function validate(str){
    var reg=/^\w{8,31}$/;
    if(str.match(reg)){
    for(var i=0;i<str.length/2;i++){
    if(str.split(str.substr(0,i+1)).join('')==''){
    return false;
    }
    }
    return true;
    }
    return false;

    }
    </script>
    <body>
    输入进行验证:<input type="text" value="" id="text"><br>
    <input type="button" value='验证' onclick="test(text)" >
    </body>
    </html>