一、可用规则:

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');
//加载自己扩展的验证类
$val->add_callable('Myrules'); //静态加载,只能调用类中的 static 方法
$val->add_callable(new MyRules()); //非静态加载

FuelPHP 系列(四) ------ Validate 验证的更多相关文章

  1. jQuery Validate验证框架详解

    转自:http://www.cnblogs.com/linjiqin/p/3431835.html jQuery校验官网地址:http://bassistance.de/jquery-plugins/ ...

  2. ASP.NET MVC下的四种验证编程方式[续篇]

    在<ASP.NET MVC下的四种验证编程方式>一文中我们介绍了ASP.NET MVC支持的四种服务端验证的编程方式("手工验证"."标注Validation ...

  3. ASP.NET MVC下的四种验证编程方式

    ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效性,我们将针对参数的验证成为Model绑定 ...

  4. ASP.NET MVC下的四种验证编程方式【转】

    ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效 性,我们将针对参数的验证成为Model绑 ...

  5. SQL Server 2008空间数据应用系列四:基础空间对象与函数应用

    原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. ...

  6. 系列四TortoiseSvn客户端软件

    原文:系列四TortoiseSvn客户端软件 TortoiseSvn介绍 TortoiseSvn 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录.文件保存在中 ...

  7. 【转】jQuery Validate验证框架详解

    jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script type=& ...

  8. 分布式系列四: HTTP及HTTPS协议

    分布式系列四: HTTP及HTTPS协议 非常全面的一篇HTTP的文章: 关于HTTP协议,一篇就够了 还有一个帮助理解HTTPS的文章: 也许,这样理解HTTPS更容易 本文的一些描述摘自这篇文章 ...

  9. atitit.jQuery Validate验证框架详解与ati Validate 设计新特性

    atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...

  10. jQuery Validate验证框架详解(jquery.validate.min.js)

    原博客 jQuery Validate验证框架详解 jQuery校验官网地址:https://jqueryvalidation.org/ 一.导入js库 <script type="t ...

随机推荐

  1. ethereum/EIPs-725

    https://github.com/ethereum/EIPs/blob/master/EIPS/eip-725.md eip title author discussions-to status ...

  2. CentOS7.5服务器安装(并添加用户) anaconda3 并配置 PyTorch1.0

    ===========================================================================================[admin@lo ...

  3. (四) DRF认证, 权限, 节流

    一.Token 认证的来龙去脉 摘要 Token 是在服务端产生的.如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端.前端可以在每次请求的时候带上 To ...

  4. Android 配置从GitHub上下载下来的不太规则的源代码库,并保证程序正常运行

    用过github的朋友一定会发现,我们在github上下载下来的源代码(例子和库),放到eclipse中并不是总能正常运行的,它有可能会出现这样或者那样的错误,例如:找不到jar包,配置文件错误,R文 ...

  5. 提高SQL查询效率的30种方法

    转载:提高SQL查询效率的30种方法 内容摘录如下: 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中 ...

  6. Scala _ 下划线

    1.引入包中的全部方法 import math._ //引入包中所有方法,与java中的*类似 2.表示集合元素 val a = (1 to 10).filter(_%2==0).map(_*2) / ...

  7. 四、MYSQL的数据类型

    类型选择原则 1.储存空间越少越好: 2.简单就好:例如整型比字符串更简单: 3.尽量避免null: 一.整数类型 1.有tinyint(8位).SMALLINT(16位).MEDIUMINT(24位 ...

  8. switch语句的执行过程

    switch语句的执行规则如下: 1.从第一个case开始判断,不匹配则跳到下一个case继续判断: 2.遇到break则跳出switch语句: 3.default一般是没有匹配项才执行的,一般是放在 ...

  9. python 回溯法 子集树模板 系列 —— 4、数字组合问题

    问题 找出从自然数1.2.3.....n中任取r个数的所有组合. 例如,n=5,r=3的所有组合为: 1,2,3 1,2,4 1,2,5 1,3,4 1,3,5 1,4,5 2,3,4 2,3,5 2 ...

  10. 【SP1811】LCS - Longest Common Substring

    [SP1811]LCS - Longest Common Substring 题面 洛谷 题解 建好后缀自动机后从初始状态沿着现在的边匹配, 如果失配则跳它的后缀链接,因为你跳后缀链接到达的\(End ...