我似乎无法绕过这个头,以为我会在这里寻求帮助!

基本上,我正在验证密码字段,并且要求如下:
-必须包含3个连续字母
-必须包含至少2位数字
-可以按任何顺序排列(例如1abc342,abc24g3、11abcsjf)

这是我到目前为止的内容,但我认为需要进行一些调整:
/ [a-z] {3} [0-9] [0-9] / i

最佳答案

您可能应该使用两个单独的正则表达式来执行此操作:一个用于测试三个连续的字母,另一个用于测试至少两个数字:

/[a-z]{3}/i
/\d.*d/

确保同时满足两个条件。您可以使用前瞻性将其组合到一个正则表达式中,但是我认为两个正则表达式是更清晰的代码和更好的解决方案。

但是,如果我对此事有意见:除非您对此无权控制(客户端指定了此项),我强烈建议不要强加这样的密码限制。它们实际上使您的密码系统的安全性大大降低,而不是更加安全。一些阅读为什么:

http://jimpravetz.com/blog/2011/06/cheap-gpus-are-rendering-strong-passwords-use/

http://jimpravetz.com/blog/2012/02/stupid-password-rules/

09-25 17:32