我有一个基于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
的规则,但事情没有取得成功。
答案 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-]*$/',
<强>详细信息:强>
答案 4 :(得分:0)
试试这段代码:
'username' => 'required|string|without_spaces|max:255|unique:users|regex:/^[A-Za-z][A-Za-z0-9]*$/',
答案 5 :(得分:0)
使用alpha_dash
!
正在验证的字段可能包含alpha-numeric
,characters
以及dashes
和underscores
。
required|alpha_dash|max:255|unique:users