正则匹配:
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只能是整型'
];
}
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('用户名只能是数字加字母组合');
}
}
成功的秘诀,在永不改变既定的目的~