1.可以为任意字符(asdf123!@#$%,这种情况可以通过)
2.不能包含连续相同的字符(aaa1234567,这种情况不能通过,因为aaa连续相同)
3,不能只包含字母(asdfghkqw,这种情况不能通过)
4,不能只包含数字(134234234,这种情况不能通过) 第二个条件不会写,我的水平就只能写出满足1,3,4的(^([a-zA-Z]+(?=[0-9])|[0-9]+(?=[a-zA-Z]))[a-zA-Z0-9]+$)。请赐教,谢谢。

解决方案 »

  1.   

    这怎么跟刚刚那帖一个需求,你要js中的正则,还是C#中的?var reg = /^(?!(?:\d+|[a-z]+)$)(?:(.)(?!\1))+$/i;另外,如果你说不符合,给出你的测试代码
      

  2.   

    <script type="text/javascript"> 
    var data = ["asdf123!@#$%", "aaa1234567", "asdfghkqw", "134234234", "adsdfs1234"];
    var reg = /^(?!(?:\d+|[a-z]+)$)(?:(.)(?!\1))+$/i ;
    for(var i=0;i<data.length;i++)
    {
        document.write(data[i] + "   验证结果:" + reg.test(data[i]) + "<br />");
    }
    </script>
    /*-----------输出-----------
    asdf123!@#$% 验证结果:true
    aaa1234567 验证结果:false
    asdfghkqw 验证结果:false
    134234234 验证结果:false
    adsdfs1234 验证结果:true
    */
      

  3.   

    C#的,正则其实是一样的string[] data = new string[] { "asdf123!@#$%", "aaa1234567", "asdfghkqw", "134234234", "adsdfs1234" };
    Regex reg = new Regex(@"(?i)^(?!(?:\d+|[a-z]+)$)(?:(.)(?!\1))+$");
    foreach (string s in data)
    {
        richTextBox2.Text += s.PadRight(15, ' ') + "验证结果:" + reg.IsMatch(s) + "\n";
    }
    /*--------输出-------
    asdf123!@#$%   验证结果:True
    aaa1234567     验证结果:False
    asdfghkqw      验证结果:False
    134234234      验证结果:False
    adsdfs1234     验证结果:True
    */