用于强密码验证的PHP正则表达式

参见英文答案 > Reference – Password Validation                                    1个
我在网上看到了以下正则表达式.

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

它只在字符串中有效:

   * contain at least (1) upper case letter
   * contain at least (1) lower case letter
   * contain at least (1) number or special character
   * contain at least (8) characters in length

我想知道如何转换这个正则表达式,以便它检查字符串

* contain at least (2) upper case letter
* contain at least (2) lower case letter
* contain at least (2) digits
* contain at least (2) special character
* contain at least (8) characters in length

好吧,如果它包含至少2个上,下,数字和特殊字符,那么我不会
需要8个字符的长度.

特殊字符包括:

`~!@#$%^&*()_-+=[]\|{};:'”.,/<>?

解决方法:

适应该正则表达式的最佳方法是将其删除并编写一些代码.所需的正则表达式将是如此漫长而复杂,您在编写它之后两小时就无法读取它.等效的PHP代码将是乏味的,但至少你将能够理解你所写的内容.

顺便说一句,这并不意味着对你的抨击.在大多数情况下,正则表达式几乎不适合密码强度验证,但是您的要求比平常更复杂,而且它不值得.另外,你发布的正则表达式是垃圾.永远不要相信你发现在网络上漂浮的正则表达式.或者任何代码,就此而言.或者,哎呀,什么. : – /

上一篇:密码_hash相当于php 5.4?


下一篇:php – 密码未使用函数password_verify验证