密码字段正则表达式 - php

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center。

7年前关闭。

好,所以我试图用正则表达式对一个字符串(输入的密码)进行preg_match,但是在互联网上阅读/观看正则表达式信息数小时后,我仍然不明白。

我目前有:
'/ ^ [A-Z] ^ [a-z] + $ /'

密码必须:

介于8到16个字符之间。
包含至少1个大写字母
包含至少1个小写字母
包含至少1个号码

如果您还可以在所有上述要求中包括正则表达式,
包含至少1个符号

对于我自己的学习,我将不胜感激。
请尝试解释您的正则表达式,以便我能理解。谢谢!

参考方案

8至16个字符:

^.{8,16}$

至少有一个大写字母

(?=.*[A-Z])

至少一个小写字母

(?=.*[a-z])

至少一个数字

(?=.*\d)

把它放在一起:

^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).{8,16}$

如果您要使用支持Unicode的变体(我知道PHP可能没有用):

^(?=.*\p{Lu})(?=.*\p{Ll})(?=.*\p{Nd}).{8,16}$

这可以通过在开头添加多个positive lookahead assertions来起作用,每个数字都检查字符串的一个所需属性。前瞻性断言检查括号中的部分是否可以在此位置匹配,但不会使字符串中的实际匹配位置提前。此处的实际匹配只是确保长度符合您的要求。

但是请注意,从本质上讲,这应该与检查每个属性的多个正则表达式匹配在计算上相同。它只是打包在单个正则表达式中。

哦,至少可以用(?=.*[,.!?])或类似的方法检查一个符号,这取决于您认为的符号。

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友

php preg_replace两个或更多空格 - php

我正在寻找替换多个空格字符的实例。我最初的搜索似乎都集中在使用/s,但这包括换行符和其他空格我认为应该接近吗?用一个空格替换两个或更多实例空格" "preg_replace('/ {2,}/', ' ', $string); 参考方案 尝试一下:preg_replace('/\s\s+/&…

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…