gpt4 book ai didi

PHP Regex - 最少 8 个字符,1 个字母,1 个数字

转载 作者:行者123 更新时间:2023-12-02 17:32:57 28 4
gpt4 key购买 nike

所以我认为我做对了?

        if(!preg_match('^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+.{7,}$', $passOne)) {
$msg = "Password does not contain at least 1 number/letter, 8 character minimum requirement.";
}

我在 https://regex101.com/ 测试了它并将 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+.{7,}$ 用于工作和诸如 RubyGlue12 通过并且是一个匹配和其他不匹配的东西。

但无论如何,我无法在实际的 PHP 代码中进行任何匹配。即使 POST 是手动变量。

编辑:$_POST['password']$passOne

帮忙吗?

最佳答案

您的 .+.{7,} 没有多大意义,因为它意味着匹配任何字符 1 次或更多次,然后匹配任何字符 7 次或更多次.

1 个字母、1 个数字和最少 8 个字符的正则表达式看起来像

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

正则解释:

  • (?i) - 关闭区分大小写(除非您需要检查 1 个大写字母和 1 个小写字母 - 然后删除 i 标记并将 (?=.*[a-z]) 替换为 (?=.*[a-z])(?=.*[A-Z]))<
  • ^ - 字符串的开始
  • (?=.*[a-z]) - 至少有 1 个字母的积极前瞻要求
  • (?=.*\d) - 至少有 1 位数字的积极前瞻要求
  • .{8,} - 至少 8 个字符
  • $ - 字符串结尾。

PHP代码是:

$re = "/^(?=.*[a-z])(?=.*\\d).{8,}$/i"; 
$passOne = "RubyGlue12";
//$passOne = "eee"; // uncomment to echo the error message
if(!preg_match($re, $passOne)) {
echo "Password does not contain at least 1 number/letter, 8 character minimum requirement.";
}

是的,对于 preg_match 函数,您必须使用一些正则表达式分隔符。我在这里使用 /

关于PHP Regex - 最少 8 个字符,1 个字母,1 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30582975/

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