正则匹配:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public function rules(){
        // 这里是验证修改不存在唯一型
        $id = request('id', 0);
        return [
            'username' => [
                'required',
                'max:10',
                'min:4',
                'regex:/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{4,10}$/',
                Rule::unique('shop_manage_user')->ignore($id)
            ],
            'password' => [
                'required',
                'min:6',
                'max:16'
            ],
            'phone' => [
                'required',
                'regex:/^\d{11,}$/'
            ],
            'role_id' => [
                'required',
                'max:5',
                'regex: /^[1-9]\d*$/'
            ]
        ];
    }
 
    public function messages(){
        return [
            'username.required' => '用户名称不能为空',
            'username.max' => '用户名称长度不能超过10个字符',
            'username.min' => '用户名称长度不能小于4个字符',
            'username.regex' => '用户名称只能是字母加数字组合',
            'username.unique' => '用户名称已存在~',
            'password.required' => '密码不能为空',
            'password.max' => '密码长度不能超过16个字符',
            'password.min' => '密码长度不能小于6个字符',
            'phone.required' => '手机号不能为空',
            'phone.regex' => '手机号输入不规范',
            'role_id.required' => '角色id不能为空',
            'role_id.max' => '角色id不能超过5位数',
            'role_id.regex' => '角色id只能是整型'
        ];
    }

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public function store(Request $request, ImageUploadHandler $uploader)
{
    $validator = Validator::make($request->all(), [
        'username' => 'bail|required|alpha_dash|max:50|unique:admin_users',
        'password' => [
            'bail',
            'required',
            'max:30',
            'min:8',
            'regex: /^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*)(?=.*[`~!@#$%^&*()_\-+=<>.?:"{}].*)/i',
            'confirmed'
        ],
        'password_confirmation' => [
            'bail',
            'required',
            'max:30',
            'min:8',
            'same:password',
        ],
        'realname' => 'bail|required|max:20',
        'email' => 'bail|nullable|max:100|email',
        'mobile' => 'bail|nullable|digits:11|unique:admin_users',
        'avatar' => 'nullable',
        'doctor_id' => 'nullable',
        'status' => [
            'bail',
            'required'
        ],
    ], [
        'username.required' => '请填写用户名',
        'username.alpha_dash' => '用户必须是英文字母、数字、下划线(_)、破折号(-)',
        'username.max' => '用户名不能大于20个字符',
        'username.unique' => '用户名已被占用,请更换其他用户名',
        'password.required' => '请填写密码',
        'password.max' => '密码长度不能大于30位',
        'password.min' => '密码长度不能小于8位',
        'password.regex' => '密码必须包含大小写字母,数字,特殊字符',
        'password.confirmed' => '两次密码输入不一致,请重新输入',
        'password_confirmation.required' => '请填写确认密码',
        'password_confirmation.max' => '确认密码不能大于30个字符',
        'password_confirmation.confirmed' => '两次密码输入不一致,请重新输入',
        'realname.required' => '请填写姓名',
        'realname.max' => '姓名不能大于20个字符',
        'email.required' => '邮箱不能大于100个字符',
        'email.email' => '邮箱格式不正确',
        'mobile.digits' => '手机号长度不正确',
        'mobile.unique' => '手机号已被占用,请更换其他手机号',
        'status.required' => '请选择账号状态',
    ]);
 
    if ($validator->fails()) {
        return $this->fail($validator->errors()->first());
    }
 
    $username = '';
    $pattern = '/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{4,10}$/';
    if(!preg_match($pattern,$username)){
        return $this->error('用户名只能是数字加字母组合');
    }
}