Laravel中,如何写用户名的验证规则?

要求是,必须包含字母和数字。

比如,纯数字就不可以。

用laravel自带的验证方法,如何实现?

阅读 10.3k
5 个回答

用这个正则就可以,已测,[a-zA-Z]+([A-Za-z0-9])*

实现效果,比如在注册用户名的时候:

55555 不通过
8754xcc 不通过
hhgdG55 通过
hhgdG55? 不通过
ggh hhd 不通过
带有中文 不通过

貌似只能用正则,laravel没有提供相应的函数支持(形如alpha_num的函数)

//获取表单的值
$username = $request->input('username');
$password = $request->input('password');

//登录表单验证
$validator = Validator::make($request->all(), [
  'username' => 'required|alpha_num|regex:/^(?!([A-Za-z]+|d\d+)$)[A-Za-z\d]$/',  //只允许数字和字母
]);

//表单验证失败提示
if ($validator->fails()) {
  //此处省略。。。
}

未测试。

 $form_data = [
            "product_name" => $request->get('product_name'),      
        ];
$rules = [
            "product_name" => 'required'
        ];
$messages = [
            'required' => ' :attribute 字段必须填写.',
        ];        
$validate = Validator::make($form_data, $rules,$messages);
if ($validate ->fails()){
    return redirect('admin/addProduct')->withErrors($validate)->withInput();
        }

不知道能不能帮助到你

你需要一份laravel文档:百度云,文档下载之后,请查看【目录】【服务】【服务——验证】,或【搜索】“Validator”。

可以自定义验证规则

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进