§ 验证格式定义
$this->_validators = array(
                                                '字段1'=>array('条件1' , '条件2', '...', '条件N'),
                                                '字段2'=>array('条件1' , '条件2', '...', '条件N'),
                                                '字段N'=>array('条件1' , '条件2', '...', '条件N'),
 );
数据自动验证以多维数组方式进行配置,一个字段可以有N个验证条件,任何一个条件验证失败,均会返回错误。
条件是以数组方式进行配置的,条件的参数也是以数组进行传递的。
§ 条件定义
array(string $rule, array([ string $argv, ] string $errorinfo))
 $rule                规则名称,如果内置的条件不能满足,可以直接编写正规表达式
 $argv               参数值,允许多个参数,当规则没有参数时忽略该项
 $errorinfo        当验证不满足时,返回的错误信息
系统中内置了多种条件规则可供使用,具体的定义如下:
| 
 规则  |  
 参数  |  
 说明  |  
| 
 not_empty  |  
 
  |  
 验证值是否为空  |  
| 
 min_length  |  
 $length  |  
 验证值是否满足最小长度  |  
| 
 max_length  |  
 $length  |  
 验证值是否满足最大长度  |  
| 
 min  |  
 $mix  |  
 验证值是否不小于指定的数值  |  
| 
 max  |  
 $max  |  
 验证值是否不大于指定的数值  |  
| 
 integer  |  
 
  |  
 验证值是否为纯数字  |  
| 
 |  
 
  |  
 验证值是否符合电子邮箱格式  |  
| 
 url  |  
 
  |  
 验证值是否符合网址格式  |  
| 
 domain  |  
 
  |  
 验证值是否符合网站域名格式规范  |  
| 
 ip  |  
 
  |  
 验证值是否符合IP地址规范  |  
| 
 telephone  |  
 
  |  
 验证值是否符合电话号码格式  |  
| 
 mobile  |  
 
  |  
 验证值是否符合手机号码格式  |  
| 
 zip  |  
 
  |  
 验证值是否符合邮政编码格式  |  
| 
 |  
 
  |  
 验证值是否符合QQ号码格式  |  
| 
 date  |  
 
  |  
 验证值是否为日期格式  |  
| 
 datetime  |  
 
  |  
 验证值是否为日期时间格式  |  
| 
 chinese  |  
 
  |  
 验证值是否为纯中文字符  |  
| 
 english  |  
 
  |  
 验证值是否为纯英文字符  |  
| 
 type  |  
 $type  |  
 验证值是否为指定的$type类型,数据类型请参考PHP手册 gettype返回值  |  
| 
 alnum  |  
 
  |  
 验证值是否由 数字和字母组成  |  
| 
 alpha  |  
 
  |  
 验证值是否由 纯字母组成  |  
| 
 alnumu  |  
 
  |  
 验证值是否由 数字和字母、下划线 之外的字符组成  |  
| 
 digit  |  
 
  |  
 验证值是否由 纯数字组成  |  
| 
 upper  |  
 
  |  
 验证值是否由 大全字母组成  |  
| 
 lower  |  
 
  |  
 验证值是否由 小全字母组成  |  
| 
 cntrl  |  
 
  |  
 验证值是否由 控制字符组成,如:\n\r\n\t  |  
| 
 graph  |  
 
  |  
 验证值是否由 可见字符组成,回车换行之类不是可见字符  |  
| 
 punct  |  
 
  |  
 验证值是否由 标点符号组成  |  
| 
 whitespace  |  
 
  |  
 验证值是否为 空白,其中换行,制表符等不可见字符也算是空白  |  
| 
 xdigit  |  
 
  |  
 验证值是否为 十六进行的数字组成  |  
| 
 ascii  |  
 
  |  
 验证值是否为 ASCII码  |  
注:规则至少要有一个参数 $errorinfo,以上表格中做了简化,省略了共同的参数:$errorinfo。
§ 举例说明
要求字段 userid的值不能为空,必须为数字,并且长度不大于8位数,代码如下:
$this->_validators = array(
                                                'userid'=>array(
                                                                        'not_empty'=>array('用户编号不能为空'),
                                                                        'integer'=>array('用户编号只能为数字'),
                                                                        'max_length'=>array(8, '用户编号长度不能超过8位'),
                                                ),
 );
如果内置的规则无法满足您的要求,你可以直接编写正则表达式进行验证。
如,使用正则验证字段 mobile是否符合手机号码的规范:
$this->_validators = array('mobile'=>array(
                                                                        '/^(01|1)(3|5|8)[0-9]{9}$/'=>array('手机号码格式错误'),
                                                ),
 );