此正则表达式是什么意思/^.*(?=.{4,5})(?=.*[az])(?=.*[AZ])(?=.*[0-9])。 * $ /

时间:2019-06-08 08:33:14

标签: php regex

有人可以详细说明以下正则表达式:

if($pass == $re_pass) {
    //password validation
    $pattern_up = "/^.*(?=.{4,56})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$/";

    if(!preg_match($pattern_up, $pass)) {
        $errPass = "Must be at lest 4 character long, 1 upper case, 1 lower case letter and 1 number exist";
    }
}

我要实现的是检查输入的密码在4到56之间。我已经在代码中指定了密码。但是,当我尝试时,它可以接受的范围超出该范围。

我的问题是我如何指定上限,我不想超过56个字符。而且,如果您可以对其进行详细说明,那么我可以了解更多。该代码不是我制作的。

谢谢

我正在尝试在php中注册页面

if($pass == $re_pass) {
    //password validation
    $pattern_up = "/^.*(?=.{4,56})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$/";

    if(!preg_match($pattern_up, $pass)) {
        $errPass = "Must be at lest 4 character long, 1 upper case, 1 lower case letter and 1 number exist";
    }
}

1 个答案:

答案 0 :(得分:0)

只需使用锚点:^.{4,56}$

^-匹配字符串的开头

$-匹配字符串的结尾

.{4,56}-匹配任何字符至少4次,最多56次

Demo

您可以正面使用它:(?=^.{4,56}$)