定义输入数据 自动验证

§   验证格式定义

$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

 

验证值是否为纯数字

email

 

验证值是否符合电子邮箱格式

url

 

验证值是否符合网址格式

domain

 

验证值是否符合网站域名格式规范

ip

 

验证值是否符合IP地址规范

telephone

 

验证值是否符合电话号码格式

mobile

 

验证值是否符合手机号码格式

zip

 

验证值是否符合邮政编码格式

qq

 

验证值是否符合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('
手机号码格式错误'),
                                               ),
);



Copyright ©2009 - 2014 CmsTop.Com.All rights reserved.
思拓合众