一、可用规则:
1、required 不能为 null, false or empty string.;
2、required_with 关联某个字段,关联字段有值则该字段必须有值;
3、match_value 两个参数:param1,要匹配的字符;param2,是否严格(true则全等,===);
4、match_pattern 匹配 preg;
5、match_field 匹配 field,比如再次输入密码确认(全等===);
6、match_collection 两个参数:param1,要匹配的array;param2,是否严格;
7、min_length 最小长度;
8、max_length 最大长度;
9、exact_length 长度是否是指定长度;
10、valid_date 两个参数:param1,时间 formate;param2,是否严格(默认为 true);
11、valid_email 单个邮箱验证;
12、valid_emails 多个邮箱验证,参数为分隔符(默认为 commas);
13、valid_url URL 验证;
14、valid_ip IP 验证,参数为 ‘ipv4‘ or ‘ipv6‘;
15、numeric_min 数字最小值(不是数字的看做 0);
16、numeric_max 数字最大值(不是数字的看做 0);
17、numeric_between 两个参数:min,max;
18、valid_string 验证 string,参数为 array();
string 验证规则:
FLAG | DESCRIPTION |
alpha | 字母 |
uppercase | 只允许大写字母 |
lowercase | 只允许小写字母 |
specials | 允许特殊字符 |
numeric | 数字 |
spaces | 空格 |
newlines | 换行符 |
tabs | TAB键 |
dots | 点 |
commas | 逗号 |
punctuation | 允许点、逗号、感叹号、问号、冒号和半冒号 |
dashes | 允许中横线、下划线 |
singlequotes | 单引号 |
doublequotes | 双引号 |
quotes | 允许单引号、双引号 |
forwardslashes | 斜杠 |
backwardslashes | 反斜杠 |
slashes | 允许斜杠、反斜杠 |
brackets | 括号 |
braces | 大括号 |
utf8 | 向正则表达式添加UTF8修饰符 |
二、可扩展验证方法,方法名以 ‘_validation_‘ 开头,例如:
// 防止重复添加 public static function _validation_unique($val, $options) { list($table, $field) = explode(‘.‘, $options); $result = DB::select(DB::expr("LOWER (\"$field\")")) ->where($field, ‘=‘, Str::lower($val)) ->from($table)->execute(); return ! ($result->count() > 0); } // 判断是否为大写字母 public function _validation_is_upper($val) { return $val === strtoupper($val); }
*获取当前验证 object,验证 field
//获取当前验证 object $active = Validation::active();
//获取当前验证字段 $field = Validation::active_field(); $field = $active::actice_field();
//当前 field 的 label $label = $active::active_field()->get_attribute(‘label‘);
//当前验证设置错误信息 Validation::active()->set_message(‘unique‘, ‘The field :label must be unique, but :value has already been used‘);
三、验证方法
$val = Validation::forge(); $val->add_field(‘name‘, ‘名字‘,‘required|unique‘); //或者 $val->add(‘name‘, ‘名字‘)->add_rule(‘required‘)->add_rule(‘unique‘); $val->set_message(‘required‘, ‘You have to fill in your :label‘); //验证 $val->run(); //获取错误信息 $val->error(); $val->error_message()
//获取验证过的信息 $val->validated(‘username‘);
原文地址:https://www.cnblogs.com/rendd/p/9200635.html