Vaj*_*tha 2 php regex preg-match
我尝试过但找不到这个问题的答案,所以我问这个问题。
我需要创建一个用于密码验证的正则表达式,它必须具有以下条件。
我创建了以下正则表达式,但它无法正常工作。
preg_match('/[A-Za-z\d$!^(){}?\[\]<>~%@#&*+=_-]{8,40}$/', $newpassword)
Run Code Online (Sandbox Code Playgroud)
有人可以帮我正确修复这个正则表达式吗?
谢谢。
在这里,使用前瞻来验证您的条件:
^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!^(){}<>%@#&*+=_-])[^\s$`,.\/\\;:'"|]{8,40}$
Run Code Online (Sandbox Code Playgroud)
让我们把它分解一下,因为它看起来有点恶心:
^它位于字符串的开头。(?=.*[a-zA-Z])验证它是否至少包含一个字母(大写字母或小写字母)。(?=.*\d)验证它是否至少包含一位数字。(?=.*[~!^(){}<>%@#&*+=_-]),验证它是否至少包含特殊字符列表中的一个字符。[^\s$,.\/\\;:'"|]{8,40}$使用倒排字符类验证整个字符串的长度是否在 8 到 40 个字符之间,并且不包含空格或非法字符。