加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 使用preg_match识别强密码

发布时间:2021-07-06 05:21:07 所属栏目:大数据 来源: https://www.jb51.cc
导读:我曾想过使用preg_match()来检查是否正确输入了密码.我想要至少1个大写字母,至少1个小写字母,至少一个数字,以及至少一个特殊字符.这是我正在使用的: $pattern = "(?=^.{8,}$)((?=.*d)|(?=.*W+))(?![.n])(?=.*[A-Z])(?=.*[a-z]).*$"; 这个正则表达式在HTM

我曾想过使用preg_match()来检查是否正确输入了密码.我想要至少1个大写字母,至少1个小写字母,至少一个数字,以及至少一个特殊字符.这是我正在使用的:

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

这个正则表达式在HTML的“模式”字段中运行良好.但我需要确保它也适用于旧浏览器.

我的PHP代码是这样的:

if (!(preg_match($pattern, $loginpassword))) {echo "Password must include one uppercase letter, one lowercase letter, one number, and one special character such as $or %."; die;}

我认为它工作得很好,除非我使用密码1 @ abcdeF它也无法匹配. PHP代码似乎工作,但没有密码匹配,即使它应该适合模式. HTML5将让它通过所以我怀疑正则表达式语句是正确的,但有关我在PHP中的设置有一些缺陷.任何人都能看到我错过的东西吗?

解决方法:

PHP正则表达式也需要正则表达式分隔符,所以使用:

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

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读