当我使用Laravel的字符串验证规则时,它到底在做什么?例如,它只是运行php的is_string()
方法还是使用filter_var()
常量运行FILTER_VALIDATE_REGEXP
?
第二,如何使用Laravel剥离标签?
答案 0 :(得分:2)
当我使用Laravel的字符串验证规则时,它到底在做什么?
使用Laravel的字符串验证规则时,它只会检查验证字段是否为字符串类型。
https://laravel.com/docs/5.0/validation#rule-string
如何使用Laravel剥离标签?
您可以使用 strip_tags()函数:
答案 1 :(得分:2)
使用Laravel的字符串验证时,以下函数将被调用
protected function validateAttribute($attribute, $rule) { ... }
您可以在其中找到
vendor / laravel / framework / src / Illuminate / Validation / Validator.php
如果您检查该方法,就会发现这段代码
$method = "validate{$rule}";
if ($validatable && ! $this->$method($attribute, $value, $parameters, $this)) {
$this->addFailure($attribute, $rule, $parameters);
}
这将称为特征Concerns\ValidatesAttributes
/**
* Validate that an attribute is a string.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function validateString($attribute, $value)
{
return is_string($value);
}
要剥离标签,您可以使用PHP的strip_tags
方法
答案 2 :(得分:1)
您可以尝试
这是我在当前项目中使用的一些验证,它基于用户输入。
$user_name = $request->get('username');
$user_email = $request->get('email');
$user_password = $request->get('password');
if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) {
return abort(403, 'Username should be alphanumeric');
}
if(strlen($username) < 3 || strlen($username) > 25){
return abort(403, 'Username should be minimum 3 and max 25 characters');
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return abort(403, 'Invalid Email Format,eg abc@xyz.com');
}
if(strlen($password) < 6){
return abort(403, 'Password should be minimum six characters');
}
推荐https://laravel.com/docs/5.7/validation。
要在laravel中剥离标签,可以在代码中使用 strip_tags()
函数。strip_tags()函数从HTML,XML和PHP标记中剥离字符串。 HTML注释总是被剥离。这不能使用allow参数更改。此函数是二进制安全的。