Laravel验证用户名不允许空格

fzl*_*hmn 15 validation laravel

我在laravel验证请求中有一点问题.我想拒绝像空格一样的用户名foo bar.我只想在foobar没有空间的情况下允许.现在我的规则是required|unique:user_detail,username.我应该使用什么规则?谢谢

huu*_*uuk 38

你为什么不使用alpha_dash 规则

required|alpha_dash|unique:user_detail,username
Run Code Online (Sandbox Code Playgroud)

从文档:

验证字段可能包含字母数字字符,以及破折号和下划线.

它不允许空间.

  • 当然会。你读过 alpha_dash 文档吗?_验证字段可能包含字母数字字符,以及破折号和下划线。_ (2认同)

scr*_*bmx 13

您可以使用自己的自定义规则扩展验证器:

Validator::extend('without_spaces', function($attr, $value){
    return preg_match('/^\S*$/u', $value);
});
Run Code Online (Sandbox Code Playgroud)

然后使用任何其他规则:

required|without_spaces|unique:user_detail,username
Run Code Online (Sandbox Code Playgroud)

查看有关自定义验证规则的文档:

https://laravel.com/docs/5.2/validation#custom-validation-rules

  • 在规则中使用正则表达式而不是创建新的自定义验证。`'用户名' => '必需|正则表达式:/^\S*$/u',` (2认同)