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.   

    try...var reg = /^(?!(?:\d+|[a-z]+)$)(?:(.)(?!\1))+$/i ;
      

  2.   

    /^(?!\d+$)(?![a-z]+$)(?:(\S)(?!\1))+$/i
      

  3.   

    像这种情况“adsdfs1234”应该可以通过,但以上两条正则都把这种情况过滤掉了。
    或者换个说法,如果分开两条正则来写的话,第二种情况应该怎样表示呢?
      

  4.   

    像这种情况“adsdfs1234”应该可以通过,但以上两条正则都把这种情况过滤掉了。
    或者换个说法,如果分开两条正则来写的话,第二种情况应该怎样表示呢?
      

  5.   

    像这种情况“adsdfs1234”应该可以通过,但以上两条正则都把这种情况过滤掉了。
    或者换个说法,如果分开两条正则来写的话,第二种情况应该怎样表示呢?
      

  6.   

    你是怎么用的,贴下你的测试代码<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
    */
      

  7.   

    1.必须为字符和数字的混合才能通过。
    2.我是用一个叫 MTracer 的正则表达式验证工具测试的。可能那个工具有BUG,肯能是我对那个工具不够理解。验证“adsdfs1234”的时候,这种情况应该属于正常情况,但工具提示“没有找到匹配”。无论怎样,谢谢。
      

  8.   

    谢谢谢谢。因为太信赖工具了,放在 MTracer 里面执行一直提示“没有找到匹配”,所以一直认为你写的正则有误。但放在JS里面的确pass了,非常感谢,明天就要UAT了,但password的policy还没搞定,现在总算搞定了。谢谢谢谢。