规则名称 | 规则说明 |
验证方法为EMAIL | |
require | 验证是否为不为空,不为空返回才能通过,字符串'0' 数字 0 均能通过 |
int | 验证是否为整形 |
num | 验证是否为数字 包括小数 和整数 |
money | 验证是否为金额,必须为非负数,且最多两位小数 |
range | 验证数字是否在范围内,需要传入扩展的参数 min、max,如果不传min表示最小值不限,如果不传max表示最大值不限 |
imgcode |
验证图形验证码是否正确 注:被验证的图形验证码必须是框架的验证码类产生的验证码 |
url | 验证网址是否正确 接受 http https开头的绝对网址,或者以“/”开头的相对网址,或者以#开头的锚点 |
datetime | 验证是否为时间 格式为:Y-m-d H:i:s |
date | 验证是否为日期格式为:Y-m-d |
mobile | 验证是否为手机号 |
tel | 验证是否为电话,区号、主机号、分机号用中划线“-”分隔,区号和主机号是必填的。如下面的格式均正确:021-99999999、021-99999999-1234 |
验证是否为QQ号码,5-18位纯数字 | |
length | 验证字符串长度是否在允许的范围内,需要传入扩展的参数 min、max,如果不传min表示最小值不限,如果不传max表示最大值不限 |
in | 验证数据是否在数据集中,扩展参数中需要有 set数组,用于比较 如 array('user1', 'user2') |
username | 判断是否为用户名,只验证字符串长度为5-32个字符,如果不符合您的规范,您可以重写此验证方法,或者对此参数单独验证 |
password | 验证密码格式是否正确,限制:6-32位任意字符 |
reg | 自定义的正则表达式验证,需要传入regexp扩展参数,见下面的示例。 |
<?php
/**
* 用户模型类
* CUser类继承自框架的模型基类(HModel)
*/
class User extends CUser{
/**
* 会员注册
* @param array $params 用户注册信息 一维数组,格式为:
* array(
* 'username'=>'user1',//用户名
* 'password'=>'password1',//密码
* 'img_code'=>'ABCD',//图形验证码
* )
* @return boolen 是否注册成功
*/
public function register($params){
if(!$this->test($params['username'], 'email')){
$this->addError('用户名只能为EMAIL');
return false;
}
//.....其他的业务逻辑
}
}
?>
<?php
/**
* 用户自定义模型类
*/
class Test extends HModel{
/**
* 验证字符串长度
* @param $str 待测试的字符串
* @return void 无返回值
*/
public function test1($str){
if(!$this->test($str, 'length', false, array('min'=>10, 'max'=>18))){
$this->addError('请输入10-18位字符');
return false;
}
//.....其他的业务逻辑
}
}
?>
<?php
/**
* 用户自定义模型类
*/
class Test extends HModel{
/**
* 验证字符串是否已A开头,并且允许字符串为空
* @param $str 待测试的字符串
* @return void 无返回值
*/
public function test2($str){
if(!$this->test($str, 'ret', true, array('regexp'=>'/^A.*/'))){
$this->addError('请输入以A开头的字符串');
return false;
}
//.....其他的业务逻辑
}
}
?>
<?php
/**
* 自定义的用户模型类
*/
class User extends HModel{
/**
* 会员注册
* @param array $params 用户注册信息 一维数组,格式为:
* array(
* 'username'=>'user1',//用户名
* 'password'=>'password1',//密码
* 'img_code'=>'ABCD',//图形验证码
* )
* @return boolen 是否注册成功
*/
public function register($params){
$rules = array(
array('username,password', 'require', false, 'error'=>'用户名密码均不可为空'),//用户名密码不可为空
array('username', 'length', false, 'min'=>5, 'max'=>32, 'error'=>'用户名长度只能限制在5-32位之间'),//用户名长度在5~32之间
array('password', 'length', false, 'min'=>6, 'max'=>32, 'error'=>'密码长度只能限制在6-32位之间'),//密码长度在6~32之间
array('img_code', 'imgcode', false, 'error'=>'图形验证码输入错误'),
);
if(!$this->testRule($params, $rules)){
return false;
}
//.....其他的业务逻辑
}
}
?>
在上述批量验证中,$rules的每一项都是一条规则数组: