日期:2014-05-16  浏览次数:20400 次

求一则正则表达式的详解
var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");

这是一个验证密码强度的正则,但是我发现很难通过验证,都不知道怎么才能达成“强”的密码。。。

这个正则超出了目前我所学习到的正则深度,基本是一点都看不懂的状态,求大神来个详解,是详解,不要只是一句话说明。有同事和我说用到了正则的断言,好高深的样子,求详解!!!
------解决方案--------------------
^(?=.{8,}) 开始位置后 至少8为任意字符
接下来 以后必须分别能够匹配 大写字母 小写字母 数字的位置

(?=.*\\W)  鉴于 \w 是匹配字母、数字、下划线,那么\W就是排除以上三种,该语句必须匹配出来以上三种的位置

因此,该正则 首先匹配至少8为,然后 必须找到 大写字母,小写字母,数字,非(字母、数字、下划线)的位置

格式为‘12345678Aa{’ 即为符合
------解决方案--------------------
var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
alert(strongRegex.test('12a+3aA0')); //true

首次看到这样的正则
他表示的是:不少于8个字符,至少分别包含一个大写字母、小写字符、数字和符号
------解决方案--------------------
至少8个字符,且包括大小写字母数字和\还有大写的字母W,如aaaAa0\W你就可以通过验证,顺序可以改变\W9989abafda,但\W这两个要挨着写
所以我觉得这个肯定不是你想要的。