用户名必须以字母开头-PHP

时间:2018-12-03 12:03:48

标签: php arrays if-statement alphabetical alphabet

我的目的是让表单在用户名输入不以字母开头的情况下警告用户。不幸的是,尽管输入的用户名以字母开头,条件仍然成立。

下面的代码是变量,其中包含一个数组,用于存储所有26个大写和小写字母。

$alphas = array_merge(range('a', 'z'), range('A', 'Z'));

然后下面的代码用于输出错误消息。

if (empty($username)){
    array_push($errors, "*Username cannot be blank<br>");
}else if(!preg_match("/^[a-zA-Z0-9_]*$/",$username)){
    array_push($errors, "*Username can only contain alpha-numeric characters or an underscore<br>");
}else if($username[0] !== $alphas){
    array_push($errors, "*Username must begin with a letter<br>");
}

条件是“ if($ username [0]!== $ alphas)”,但是它一直返回 TRUE ,这意味着它将显示消息“ *无论用户名输入的第一个字母如何,用户名都必须以字母开头。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

下面的代码可以正常工作.....

    $alphas = array_merge(range('a', 'z'), range('A', 'Z'));

    $errors=array();
    $username="username";
    echo $username[0];
    if (empty($username)){
        array_push($errors, "*Username cannot be blank<br>");
    }else if(!preg_match("/^[a-zA-Z0-9_]*$/",$username)){
        array_push($errors, "*Username can only contain alpha-numeric characters or an underscore<br>");
    }else if(!in_array($username[0],$alphas)){
        array_push($errors, "*Username must begin with a letter<br>");
    }else{
         echo "correct username";
// do what ever you want to code but do not hurt you mother :) :)
         die;
    }

    print_r($errors);