求一验证密码的正则表达式,规则如下:
1.密码至少需要8个字符
2.大写字母、小写字母、数字、符号这4类字符中必须有3类

解决方案 »

  1.   

    你需要的其实是所谓的密码强度测试
    see~http://zuzong.javaeye.com/blog/298140
      

  2.   

    string pattern="((?<A>[A-Z])|(?<B>[a-z])|(?<C>[1-9])|(?<D>[\\-])){8,}(?(A)|((?(B)|(?!))(?(C)|(?!)))(?(D)|(?!))))(?(B)|((?(A)|(?!))(?(C)|(?!)))(?(D)|(?!))))(?(C)|((?(A)|(?!))(?(B)|(?!)))(?(D)|(?!))))"
    (?(D)|((?(A)|(?!))(?(B)|(?!)))(?(C)|(?!))))";
      

  3.   

    你试试看?string pattern="((?<A>[A-Z])|(?<B>[a-z])|(?<C>[1-9])|(?<D>[\\-])){8,}(?(A)|((?(B)|(?!))(?(C)|(?!)))(?(D)|(?!))))(?(B)|((?(A)|(?!))(?(C)|(?!)))(?(D)|(?!))))(?(C)|((?(A)|(?!))(?(B)|(?!)))(?(D)|(?!))))(?(D)|((?(A)|(?!))(?(B)|(?!)))(?(C)|(?!))))";
      

  4.   

    运行后报这个错误啊
    parsing "((?<A>[A-Z])|(?<B>[a-z])|(?<C>[1-9])|(?<D>[\\-])){8,}(?(A)|((?(B)|(?!))(?(C)|(?!)))(?(D)|(?!))))(?(B)|((?(A)|(?!))(?(C)|(?!)))(?(D)|(?!))))(?(C)|((?(A)|(?!))(?(B)|(?!)))(?(D)|(?!))))(?(D)|((?(A)|(?!))(?(B)|(?!)))(?(C)|(?!))))" - Too many )'s.
      

  5.   

    JQuery写的代码·
    $('#btn_special').click(function(){
                    $(this).val('if if pwd[n>=8][type>=3]');
                    var text=$('#input_special').val(); 
                    var num=0;
                    if(text.search(/[A-Z]/)!=-1)
                    {
                        num+=1;
                    }
                    if(text.search(/[0-9]/)!=-1)
                    {
                        num+=1;
                    }
                    if(text.search(/[a-z]/)!=-1)
                    {
                        num+=1;
                    }
                    if(text.search(/[^A-Za-z0-9]/)!=-1)
                    {
                        num+=1;
                    }
                    if(num>=3 && (text.length>=8))
                    {
                        vool=true;                                        
                    }
                    else
                    {
                        vool=false;
                    }
                    $(this).val($(this).val()+':'+vool);
                });
                
            });
      

  6.   


    string pattern = "((?<A>[A-Z])|(?<B>[a-z])|(?<C>[1-9])|(?<D>[\\-])){8,}(?(A)|((?(B)|(?!))(?(C)|(?!)))(?(D)|(?!)))(?(B)|((?(A)|(?!))(?(C)|(?!)))(?(D)|(?!)))(?(C)|((?(A)|(?!))(?(B)|(?!)))(?(D)|(?!)))(?(D)|((?(A)|(?!))(?(B)|(?!)))(?(C)|(?!)))";我改正了
      

  7.   

    结贴了,最后参考了mqc507写了
    javascript:
            function ValidPassword(strPassword)
            {
                var num=0;
                if(strPassword.search(/[A-Z]/)!=-1)
                {
                    num+=1;
                }
                if(strPassword.search(/[0-9]/)!=-1)
                {
                    num+=1;
                }
                if(strPassword.search(/[a-z]/)!=-1)
                {
                    num+=1;
                }
                if(strPassword.search(/[^A-Za-z0-9]/)!=-1)
                {
                    num+=1;
                }
                if(num>=3 && (strPassword.length>=8))
                {
                    vool=true;                                        
                }
                else
                {
                    vool=false;
                }
                return vool;
            }
    C#:
            private bool ValidPassword(string strPassword)
            {
                bool bReturn = false;
                int sumRegex = 0;
                Regex regex1 = new Regex("[A-Z]+");
                Regex regex2 = new Regex("[a-z]+");
                Regex regex3 = new Regex("[0-9]+");
                Regex regex4 = new Regex("[^A-Za-z0-9]");
                if (regex1.IsMatch(strPassword))
                    sumRegex += 1;
                if (regex2.IsMatch(strPassword))
                    sumRegex += 1;
                if (regex3.IsMatch(strPassword))
                    sumRegex += 1;
                if (regex4.IsMatch(strPassword))
                    sumRegex += 1;
                if (sumRegex > 2 && strPassword.Length > 7)
                    bReturn = true;
                return bReturn;
            }感谢 HDNGO 和 eibo520