gpt4 book ai didi

javascript - 不满足正则表达式准确获取密码

转载 作者:行者123 更新时间:2023-11-28 17:25:05 25 4
gpt4 key购买 nike

我对正则表达式有疑问,详情如下

/^(?=^.{8,}$)(?=.*[0-9])(?=.+[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+}{":;>.<;,]).{1,}$/

我已使用此正则表达式进行密码策略,如下所示

  • 至少 1 个大写字符[A-Z]
  • 至少 1 个小写字符[a-z]
  • 至少 1 个特殊字符[!@#$%^]
  • 至少 1 位数字[0-9]
  • 至少 8 个字符

但是每当我测试它时,模式就会出错。例如,在这种输入中,例如

Ex:

James1234

jam123Es

1234James

1234jaMeS

在这些中,上述所有示例我都没有应用任何特殊字符,而是满足正则表达式。

最佳答案

我知道这并不能回答您的实际问题,但其他人已经回答了这个问题,所以我想无论如何我都会分享我的想法。

在我看来,像这样的单个正则表达式有一些缺点,它难以阅读和调试。此外,也无法判断哪些规则实际上导致了检查失败。您可以考虑将其分解为较小的检查,这也将使以后添加其他规则变得容易。

<?php
$check = function (string $p): string
{
if (strlen($p) < 8) {
return "Not long enough";
}

if (!preg_match('/[A-Z]/', $p)) {
return "No upper case character";
}

if (!preg_match('/[a-z]/', $p)) {
return "No lower case character";
}

if (!preg_match('/\d/', $p)) {
return "No digits";
}

if (!preg_match('/[!@#$%^]/', $p)) {
return "No special character";
}


return "OK";
};

关于javascript - 不满足正则表达式准确获取密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51834780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com