@在PHP正则表达式中

时间:2019-01-02 17:53:46

标签: php regex validation

我发现此脚本用于密码验证,但是我不知道为什么“ @”出现在模式中。你能解释一下吗?谢谢

                $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/>";
            }

1 个答案:

答案 0 :(得分:2)

在许多正则表达式库中,“定界符”实际上是completely up to the programmer,并且完全是任意的。基本上,无论模式中的第一个字符是什么,它都是定界符,并且当它再次显示(不转义)时,该模式就被认为是完整的(可选的,在结束定界符后带有一些标志)。

您可以认为这与程序员的风格/品味有关,或者他们习惯于在项目中使用模式中的/的习惯,而他们不想一直逃避它们。