我发现此脚本用于密码验证,但是我不知道为什么“ @”出现在模式中。你能解释一下吗?谢谢
$uppercase = preg_match('@[A-Z]@', $_POST['password']);
$lowercase = preg_match('@[a-z]@', $_POST['password']);
$number = preg_match('@[0-9]@', $_POST['password']);
if (!$uppercase || !$lowercase || !$number || strlen($_POST['password']) < 8)
{
$message .= "Password must contains lowercase letter, uppercase letter, digit and minimal length is 8 characters. <br/>";
}
答案 0 :(得分:2)
在许多正则表达式库中,“定界符”实际上是completely up to the programmer,并且完全是任意的。基本上,无论模式中的第一个字符是什么,它都是定界符,并且当它再次显示(不转义)时,该模式就被认为是完整的(可选的,在结束定界符后带有一些标志)。
您可以认为这与程序员的风格/品味有关,或者他们习惯于在项目中使用模式中的/
的习惯,而他们不想一直逃避它们。