我似乎无法绕过这个头,以为我会在这里寻求帮助!
基本上,我正在验证密码字段,并且要求如下:
-必须包含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/