一、可用规则:

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. 模糊查询SSD_DATA盘谁使用率高?

    select sum(bytes / 1024 / 1024 / 1024),       d.owner,       d.segment_name,       d.segment_type  f ...

  2. docker镜像的创建方法docker file方式

    什么是docker file文件? 简单来说,docker file文件就是一个命令文本集合,容来记录创建docker镜像的步骤 快速入门: 1.新建一个docker file文件dockerfile ...

  3. WorldWind源码剖析系列:设置类SettingsBase

    PluginSDK中的星球设置类WorldSettings 和WorldWind.程序设置类WorldWindSettings均继承自父类SettingsBase.类图如下所示.其中父类Setting ...

  4. JavaScript标准对象

    1.Date var now = new Date(); now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST) now.getFullYear(); // 2 ...

  5. Centos6.4安装配置sendmail

    一.安装sendmail yum install -y sendmail yum install -y sendmail-cf 二. 安装salauthd //使用SMTP认证,需要安装saslaut ...

  6. day78

    昨日回顾:  forms组件:   -校验数据(最重要)    -先定义一个类(继承Form)    -写一些要校验的字段(好多类型)    -字段(对象)有一些属性(最长多少,最短多少,是否必填,l ...

  7. jqgrid 设置多表头

    有时,我们需要给jqgrid设置多表头信息,多表头区域会有行合并/列合并,如何实现? 1)通过jqgrid的 setGroupHeaders 方法来实现一个行的多表头, 2)如果有多行表头,需要设置多 ...

  8. 笔记:UITextView内容垂直居中方法

    - (void)contentSizeToFit { //先判断一下有没有文字(没文字就没必要设置居中了) ) { //textView的contentSize属性 CGSize contentSiz ...

  9. Maltego——互联网情报聚合工具初探(转)

    有时候你可曾想过,从一个Email,或者Twitter,或是网站,甚至姓名等等,能找到一个人千丝万缕的联系,并把这些联系整合,利用起来?Maltego就是这样一款优秀而强大的工具.Maltego允许从 ...

  10. 20155238 《JAVA程序设计》实验二(Java面向对象程序设计)实验报告

    实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验要求 1.没有Linux基础的同学建议先学习<L ...