检查用户名是否包含laravel 5.3中的数字和字母?

时间:2017-01-10 16:20:05

标签: php laravel-5

我想检查用户名是否包含字母和数字。我正在尝试使用alpha_num

protected function validator(array $data)
{
    return Validator::make($data, [
    'name' => 'required',   
    'username' => 'required|alpha_num',
    'password' => 'min:6|required',
    ]);
}

但它没有用。 请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

alpha_num过滤器只检查用户名是否仅包含字母和数字,但如果两者都存在则不会。

根据您的需要,有两个可以验证用户名的正则表达式

如果您想要(至少)一个字母和一个数字以及其他任何

if (preg_match('/[A-Za-z]/', $myString) && preg_match('/[0-9]/', $myString))
{
    echo 'Contains at least one letter and one number';
}
  • 1a]-/*+aaaaaaaa1将通过此测试
  • 1-_%a将无法通过测试

如果您想要(至少)一个字母和一个数字,但只需要字母和数字

if (preg_match('/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/', $myString))
{
    echo 'Contains at least one letter and one number and only alphanum';
}

有关此正则表达式的更多信息:https://regex101.com/r/GrLGbT/1

  • 1111111aaaaaaaaa1将通过此测试
  • 1a-a将无法通过测试

获得正则表达式后,您需要创建自定义验证程序。在这里查看文档:{​​{3}}

答案 1 :(得分:0)

如果您不想输入数字,可以尝试  'name'=>'required | regex:/ ^ [\ pL \ s-] + $ / u | max:255',

如果您希望它为字母数字,则: 'name'=>'required | string | max:255',