用于密码强度验证的RegEx问题

时间:2011-04-29 15:48:19

标签: regex passwords

我正在为我们的密码要求寻找一个正则表达式。密码:

  • 必须至少8个字符
  • 不能包含空格
  • 包含小写和大写字符
  • 至少包含一个数字
  • 至少包含一个特殊字符(即任何不是0-9,a-z,A-Z的字符)

2 个答案:

答案 0 :(得分:8)

编写逻辑可能更容易。正则表达式用于匹配模式。密码往往是一些随机的字符串,所以这个问题不容易被正则表达式解决。这是可能的,但阅读和难以维护将是神秘的。

答案 1 :(得分:4)

理念和大部分工作取自http://www.zorched.net/2009/05/08/password-strength-validation-with-regular-expressions/

^\S*(?=\S{8,})(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])(?=\S*[\W])\S*$

我在帖子底部使用了基本答案,但用\S替换了所有点以排除空格字符,并移动了一些断言。