【发布时间】:2016-10-14 14:55:39
【问题描述】:
我在 laravel 验证请求中有一个小问题。我想拒绝带有foo bar 之类的空格的用户名。我只想让foobar 没有空格。现在我的规则是required|unique:user_detail,username。我应该使用什么规则?谢谢
【问题讨论】:
标签: validation laravel
我在 laravel 验证请求中有一个小问题。我想拒绝带有foo bar 之类的空格的用户名。我只想让foobar 没有空格。现在我的规则是required|unique:user_detail,username。我应该使用什么规则?谢谢
【问题讨论】:
标签: validation laravel
你为什么不使用alpha_dashrule?
required|alpha_dash|unique:user_detail,username
来自文档:
验证中的字段也可能包含字母数字字符 作为破折号和下划线。
而且它不允许有空格。
【讨论】:
您可以使用自己的自定义规则扩展验证器:
Validator::extend('without_spaces', function($attr, $value){
return preg_match('/^\S*$/u', $value);
});
然后就像任何其他规则一样使用:
required|without_spaces|unique:user_detail,username
查看有关自定义验证规则的文档:
https://laravel.com/docs/5.2/validation#custom-validation-rules
【讨论】:
'username' => 'required|regex:/^\S*$/u',
您应该使用正则表达式进行验证。
PHP:
required|unique:user_detail,username,'regex:/\s/'
【讨论】:
regex:/^\S*$/u
您应该在验证中使用正则表达式。
Laravel:
'domain' => 'required|max:255|unique:users|regex:/(^[a-zA-Z]+[a-zA-Z0-9\\-]*$)/u',
【讨论】: