【发布时间】:2016-12-06 11:21:04
【问题描述】:
我正在尝试编写正则表达式来验证给定规则的密码。
密码长度必须至少为 8 个字符,并且至少包含以下 4 种字符中的 3 种:
- 小写字母(即 a-z)
- 大写字母(即 A-Z)
- 数字(即 0-9)
- 特殊字符(例如 !@#$&*)
现在我正在尝试为上述要求编写正则表达式,我想出了这样的解决方案
^(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9])(?=.*[a-z]).{8,}|
(?=.*[!@#$&*])(?=.*[0-9])(?=.*[a-z]).{8,}|
(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}|
(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[a-z]).{8,}|
(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9]).{8,}$
它运行完美,请参阅rubular,但我想优化这些正则表达式,我不确定是否有任何方法可以简化它。 任何建议将不胜感激。 非常感谢
【问题讨论】:
-
优化这个正则表达式意味着把它分成几个更小的正则表达式。它们将更具可读性和可维护性。
-
@WiktorStribiżew 非常感谢如果您能在此处提供任何有用的链接,谢谢
-
如果 正规表达式 工作正常,也许,问这个问题的更好地方是Code Review。
标签: javascript ruby-on-rails ruby regex jquery-validate