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

Php 检查用户名是否包含laravel 5.3中的数字和字母?,php,laravel-5,Php,Laravel 5,我想检查用户名是否同时包含字母和数字。我试图使用alpha_num protected function validator(array $data) { return Validator::make($data, [ 'name' => 'required', 'username' => 'required|alpha_num', 'password' => 'min:6|required', ]); } 但它不起作用。 请帮我

我想检查用户名是否同时包含字母和数字。我试图使用
alpha_num

protected function validator(array $data)
{
    return Validator::make($data, [
    'name' => 'required',   
    'username' => 'required|alpha_num',
    'password' => 'min:6|required',
    ]);
}
但它不起作用。
请帮我解决这个问题。

alpha_num过滤器只检查用户名是否只包含字母和数字,而不检查两者是否都存在

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

如果你想要(至少)一个字母和一个数字以及其他任何东西
  • 1a]-/*+
    aaaaaa 1
    将通过此测试
  • 1-\%
    a
    将无法通过测试
如果你想要(至少)一个字母和一个数字,但只想要字母和数字 有关此正则表达式的详细信息:

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


一旦有了正则表达式,就需要创建一个自定义验证器。请在此处查看文档:

如果希望输入不是数字,可以尝试 'name'=>'必需|正则表达式:/^[\pL\s-]+$/u |最大值:255'

如果希望它是字母数字,则:
'name'=>'必填| string | max:255',

是否需要用户名以遵循特定模式?或者只是检查它是否包含字母和数字?我只想检查它是否包含至少一个字母和一个数字。比如John123,而不是John123。将Crozet提到的自定义验证与此答案中的正则表达式结合起来:“不起作用”是什么意思?构成非工作状态的是什么?
if (preg_match('/[A-Za-z]/', $myString) && preg_match('/[0-9]/', $myString))
{
    echo 'Contains at least one letter and one number';
}
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';
}