仅在Laravel 5.4用户名上验证英文字母和数字

时间:2018-02-06 10:21:48

标签: php laravel validation

我有一个基于Laravel 5.4的网站

我遇到了问题,在注册用户时,我只需要用英文字母和数字来解析username

我在控制器中有一个方法。

protected function validator(array $data)
{
   return Validator::make($data, [
       'username' => 'required|string|without_spaces|max:255|unique:users',
       'email' => 'string|email|max:255|unique:users|nullable',
       'password' => 'string|min:6|confirmed|nullable',
   ]);
}

有什么想法怎么做?我被喂养来制定alpha_num的规则,但事情没有取得成功。

6 个答案:

答案 0 :(得分:3)

 'username' => 'required|string|without_spaces|max:255|unique:users|regex:/(^([a-zA-Z]+)(\d+)?$)/u',

答案 1 :(得分:2)

你可以添加alpha验证,它就可以了。

'username' => 'required|alpha|max:255|unique:users',

答案 2 :(得分:1)

您有两个选项

选项A :您只需将此正则表达式放入验证方法中即可,例如:

    'username' => ['required', 'string', 'max:255', 'unique:users',
                                       'regex:/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/'],

选项B: alpha_dash 是默认的Laravel验证规则,该规则允许字母,数字,破折号和下划线以及NOT空格。

实施alpha_dash规则时,正在验证的字段可能包含字母数字字符,破折号和下划线:

'username' => ['required', 'string', 'max:255', 'unique:users', 'alpha_dash'],

答案 3 :(得分:0)

来自Laravel Docs

  

正则表达式:图案

     

验证字段必须与给定的正则表达式匹配。

使用正则表达式

   'username' => 'required|string|without_spaces|max:255|unique:users|regex:/^[\w-]*$/',

<强>详细信息:

  • ^ - 字符串的开头
  • [\ w - ] * - 来自[a-zA-Z0-9_]范围的零个或多个字符或-s
  • $ - 字符串结束。

答案 4 :(得分:0)

试试这段代码:

'username' => 'required|string|without_spaces|max:255|unique:users|regex:/^[A-Za-z][A-Za-z0-9]*$/',

答案 5 :(得分:0)

使用alpha_dash

正在验证的字段可能包含alpha-numericcharacters以及dashesunderscores

required|alpha_dash|max:255|unique:users