gpt4 book ai didi

PHP正则表达式用于包含字母数字和特殊字符的字符串

转载 作者:行者123 更新时间:2023-12-02 04:04:37 25 4
gpt4 key购买 nike

我尝试过但找不到此问题的答案,因此我提出这个问题。

我需要创建一个用于密码验证的正则表达式,它必须满足以下条件。

  • 至少一个字母
  • 至少一个数字
  • 至少一个特殊字母~! ^ ( ) { } < > % @ # & * + = _ -
  • 不得包含 $ ` , ./\; : ' "|
  • 必须介于 8 到 40 个字符之间
  • 没有空格

我创建了以下正则表达式,但它无法正常工作。

preg_match('/[A-Za-z\d$!^(){}?\[\]<>~%@#&*+=_-]{8,40}$/', $newpassword)

有人可以帮我正确修复这个正则表达式吗?

谢谢。

最佳答案

给你,使用 lookaheads验证您的条件:

^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!^(){}<>%@#&*+=_-])[^\s$`,.\/\\;:'"|]{8,40}$

让我们把它分解一下,因为它看起来有点难看:

  • ^断言它位于字符串的开头。
  • 第一个前瞻,(?=.*[a-zA-Z]) ,验证它至少包含一个字母(大写或小写)。
  • 第二个,(?=.*\d) ,验证它是否至少包含一位数字。
  • 第三个,(?=.*[~!^(){}<>%@#&*+=_-]) ,验证它是否至少包含特殊字符列表中的一个字符。
  • 最后,[^\s$,.\/\\;:'"|]{8,40}$使用反转字符类验证整个字符串的长度在 8 到 40 个字符之间,并且不包含空格或非法字符。

Demo on Regex101

关于PHP正则表达式用于包含字母数字和特殊字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40120488/

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