$uppercase = preg_match('@[A-Z]@', $motpass);
$lowercase = preg_match('@[a-z]@', $motpass);
$number = preg_match('@[0-9]@', $motpass);
$special = preg_match('@[@#$%^&+=]@', $motpass); <---( PROBLEM HERE )
if (!$uppercase || !$lowercase || !$number || !$special || strlen($motpass) < 8)
{
$motpass_error='NO GOOD';
$error=true;
}
else
{
$motpass = $_POST['motpass'];
}
我正在寻找正则表达式(所有特价Chararcter或大多数)
提前致谢!
答案 0 :(得分:0)
您可以尝试以下代码。
$uppercase = preg_match('@[A-Z]@', $motpass);
$lowercase = preg_match('@[a-z]@', $motpass);
$number = preg_match('@[0-9]@', $motpass);
$special = preg_match('/[^a-zA-Z\d]/', $string);
OR
$uppercase = preg_match('@[A-Z]@', $motpass);
$lowercase = preg_match('@[a-z]@', $motpass);
$number = preg_match('@[0-9]@', $motpass);
$special = preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$%^&]).*$/');
if (!$uppercase || !$lowercase || !$number || !$special || strlen($motpass) < 8)
{
$motpass_error='NO GOOD';
$error=true;
}
else
{
$motpass = $_POST['motpass'];
}
答案 1 :(得分:0)
试试这个
$special = preg_match('/[^a-zA-Z\d]/', $motopass);
答案 2 :(得分:0)
'\ w'匹配单词(字母或数字)字符,其中'\ W'与非单词(特殊字符)字符匹配。
因此使用非单词字符变得简单。 试试下面的正则表达式:
$special = preg_match('/\W+/', $string);
表达式中的'+'表示一个或多个单词字符。