正则表达式,用于包含至少8个字符和至少1个非字母数字字符的密码

Joh*_* Au 3 php regex passwords non-alphanumeric

我试图在PHP中进行检查,如果用户更改了他们的密码,他们的新密码必须是8个或更多字符,并且至少有1个非字母数字密码.我该怎么检查这个以及正则表达式是什么?

检查长度是很容易的部分strlen >= 8.我的问题是正则表达式.即使经过多年的计算机科学研究,我对正则表达式也一无所知.

谢谢

nic*_*ckb 5

尝试这样的方法来检查它们是否使用了非字母数字字符:

if( !preg_match( '/[^A-Za-z0-9]+/', $password) || strlen( $password) < 8)
{
    echo "Invalid password!";
}
Run Code Online (Sandbox Code Playgroud)

该if语句将评估true是否$password包含至少一个不在列表中的字符(字母数字字符).