由于没有全面学习正则,遇到如下问题,希望大虾们指点:
1.验证密码是否符合复杂密码规则。
要求1).所需密码必须包含 普通大小写英文字母
    2).必须包含 数字[0-9]
    3).必须包含 特殊字符
    4).整体长度在{8,20}位之间
我写了下面的表达示,但是,无法加上8,20的限制
 ^([a-zA-Z]+\d+[\W\D]+)|([a-zA-Z]+[\W\D]+\d+)|([\W\D]+[a-zA-Z]+\d+)|([\W\D]+\d+[a-zA-Z]+)|(\d+[\W\D]+[a-zA-Z]+)|(\d+[a-zA-Z]+[\W\D]+)$
注:有了正确答案就结贴。

解决方案 »

  1.   

    什么环境?是在javascript里做还是C#里做?后者的话,试一下^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\W\D])\S{8,20}$
      

  2.   

    老大果然不同反响,不过有点问题,我用passw0rd!
    没通过,aaaaaaa1!也没有验证通过
    我的意思是,只要包含 那三种规则就好了,且位置不限,这三种符号出现的位置也不限就

    passw0rd!
    1assword!
    1!assword
    等等吧
    环境就是javascript了,当然所有环境最好了,我用的是asp.net中的的正则验 证控件(在客户端验证的),告诉我思路也行。谢谢您的回答
      

  3.   

    Javascript好象不支持类似正则的,写个CustomValidatorb吧
      

  4.   

    来晚了,被SAUCER老大抢先了,上面的方法是对的!
      

  5.   

    楼上,javascript中有可用的解决方案吗