求一正则表达式:必须至少为8个字符长,包含:一个小写字母,大写字母,数字或特殊字符 - !)

解决方案 »

  1.   

    <script>
        var regstring="a1123Adf!";
        if (/[0-9a-zA-Z\-\!]{8,}/g.test(regstring) && /[0-9]{1,}/g.test(regstring) && /[a-z]{1,}/g.test(regstring) && /[A-Z]{1,}/g.test(regstring) && /[\-\!]{1,}/g.test(regstring)) {
            alert("密码很强哦!");
        }
        else {
            alert("密码太弱了!");
        }
    </script>
      

  2.   

    http://zhidao.baidu.com/question/342696512.html这东西用正则表达式写起来比较复杂,思路可以大概说下,就是你首先对这四种(大小写数字符号其它)全排列,然后将它们的每一种排列写出来,用或连起来。
      

  3.   

        var regstring = "a1123Adfa!#";
        if (/^[0-9a-zA-Z\-\!]{8,}$/g.test(regstring)) {
            if (/[0-9]{1,}/g.test(regstring) && /[a-z]{1,}/g.test(regstring) && /[A-Z]{1,}/g.test(regstring) && /[\-\!]{1,}/g.test(regstring)) {
                alert("密码很强哦!");
            }
            else {
                alert("密码太弱了!");
            }
        }
        else {
            alert("密码只能为数字+字母+符号\"- !\"");
        }
      

  4.   

     string pass = "123aZ-sss";
                if (Regex.IsMatch(pass, @"^(?![a-zA-Z\d]+$)(?![a-zA-Z-!)]+$)(?![\dA-Z-!)]+$)(?![\da-z-!)]+$)[a-zA-Z\d-!)]{8,}$"))
                {
                    Console.WriteLine("匹配");
                }
      

  5.   

    string s = "ab3mM9a)3";
    bool result = Regex.IsMatch(s, @"^(?=.*?[0-9])(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[-!\)])[0-9A-Za-z-!)]{8,}$");
    Response.Write(result);
      

  6.   

    特殊字符可有可无的话,这样:
    string s = "ab3mM9a3";
    bool result = Regex.IsMatch(s, @"^(?=.*?[0-9])(?=.*?[A-Z])(?=.*?[a-z])[0-9A-Za-z!-)]{8,}$");
    Response.Write(result);
      

  7.   

    哦,-要放到最后去,更正一下:
    string s = "ab3mM9a3";
    bool result = Regex.IsMatch(s, @"^(?=.*?[0-9])(?=.*?[A-Z])(?=.*?[a-z])[0-9A-Za-z!)-]{8,}$");
    Response.Write(result);
      

  8.   

    (?=.*[A-Z])(?=.*[a-z_])(?=.*[\\-,!,0-9])(?![0-9]+$)(?![a-z_A-Z]+$)[0-9_a-zA-Z,\\-,!]{8,}