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

use*_*361 5 regex passwords

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

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

arm*_*ino 8

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


Bri*_*ham 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*$
Run Code Online (Sandbox Code Playgroud)

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