在 laravel 字符串验证中避免使用 html 标签
Avoid html tags in laravel string validation
我想阻止用户在注册时在他们的用户名字段中使用 html 标签,我该怎么做?
例如目前我有一个用户他用这样的用户名注册
E7JfyqxE4lsbqQ <html><a href="https://www.apple.com"><img src="https://...../d28/2011/19/93045d3fb9c4.jpg" width="600" height="234" alt="bill"></a> </html>
我只想允许字母和数字(a-z,0-9)就这样。
RegisterController
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'username' => 'required|string|max:255|unique:users|not_exist',
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
你可以这样做
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'username' => [
'required',
'string',
'max:255',
'string',
'unique:users',
'not_exist',
'not_regex:<\s*a[^>]*>(.*?)<\s*/\s*a>'
],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
如果要包含更多内容,可以添加更多正则表达式
如果您只想允许字母数字字符,您可以使用 Laravel 的内置 alpha_num
验证。
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'alpha_num', 'max:255'],
'username' => 'required|string|alpha_num|max:255|unique:users|not_exist',
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
我想阻止用户在注册时在他们的用户名字段中使用 html 标签,我该怎么做?
例如目前我有一个用户他用这样的用户名注册
E7JfyqxE4lsbqQ <html><a href="https://www.apple.com"><img src="https://...../d28/2011/19/93045d3fb9c4.jpg" width="600" height="234" alt="bill"></a> </html>
我只想允许字母和数字(a-z,0-9)就这样。
RegisterController
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'username' => 'required|string|max:255|unique:users|not_exist',
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
你可以这样做
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'username' => [
'required',
'string',
'max:255',
'string',
'unique:users',
'not_exist',
'not_regex:<\s*a[^>]*>(.*?)<\s*/\s*a>'
],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
如果要包含更多内容,可以添加更多正则表达式
如果您只想允许字母数字字符,您可以使用 Laravel 的内置 alpha_num
验证。
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'alpha_num', 'max:255'],
'username' => 'required|string|alpha_num|max:255|unique:users|not_exist',
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}