以下内容记录了,php框架中的YII2框架使用rules做数据验证时常用的验证规则,以减少我们自己写数据验证消耗的时间,还挺实用,需要的小伙伴可以收藏。
required : 必须值验证属性
[['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息'];
#说明:CRequiredValidator 的别名, 确保了特性不为空.
email : 邮箱验证
['email', 'email'];
#说明:CEmailValidator的别名,确保了特性的值是一个有效的电邮地址.
match : 正则验证
[['字段名'],match,'pattern'=>'正则表达式','message'=>'提示信息'];
/*正则取反*/
#说明:CRegularExpressionValidator 的别名, 确保了特性匹配一个正则表达式.
[['字段名'],match,'not'=>ture,'pattern'=>'正则表达式','message'=>'提示信息'];
url : 网址
['website', 'url', 'defaultScheme' => 'http'];
#说明:CUrlValidator 的别名, 确保了特性是一个有效的路径.
captcha : 验证码
['verificationCode', 'captcha'];
#说明:CCaptchaValidator 的别名,确保了特性的值等于 CAPTCHA 显示出来的验证码.
safe : 安全
['description', 'safe'];
compare : 比较
['age', 'compare', 'compareValue' => 30, 'operator' => '>='];
#说明:compareValue(比较常量值) - operator(比较操作符)
#说明:CCompareValidator 的别名,确保了特性的值等于另一个特性或常量.
default : 默认值
['age', 'default', 'value' => null];
#说明:CDefaultValueValidator 的别名, 为特性指派了一个默认值.
exist : 存在
['username', 'exist'];
#说明:CExistValidator 的别名,确保属性值存在于指定的数据表字段中.
file : 文件
['primaryImage', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024*1024];
#说明:CFileValidator 的别名, 确保了特性包含了一个上传文件的名称.
filter : 滤镜
[['username', 'email'], 'filter', 'filter' => 'trim', 'skipOnArray' => true];
#说明:CFilterValidator 的别名, 使用一个filter转换属性.
in : 范围
['level', 'in', 'range' => [1, 2, 3]];
#说明:CRangeValidator 的别名,确保了特性出现在一个预订的值列表里.
unique : 唯一性
['username', 'unique'];
#说明:CUniqueValidator 的别名,确保了特性在数据表字段中是唯一的.
integer : 整数
['age', 'integer'];
number : 数字
['salary', 'number'];
double : 双精度浮点型
['salary', 'double'];
date : 日期
[['from', 'to'], 'date', 'format'=>'yyyy/MM/dd/ HH:mm:ss'];
string : 字符串
['username', 'string', 'length' => [4, 24]];
boolean : 是否为一个布尔值
['字段名', 'boolean', 'trueValue' => true, 'falseValue' => false, 'strict' => true];
#说明:CBooleanValidator
php代码中的rules 常用验证规则写法
return array(
//必须填写
array('email, username, password,agree,verifyPassword,verifyCode', 'required'),
//检查用户名是否重复
array('email','unique','message'=>'用户名已占用'),
//用户输入最大的字符限制
array('email, username', 'length', 'max'=>64),
//限制用户最小长度和最大长度
array('username', 'length', 'max'=>7, 'min'=>2, 'tooLong'=>'用户名请输入长度为4-14个字符', 'tooShort'=>'用户名请输入长度为2-7个字'),
//限制密码最小长度和最大长度
array('password', 'length', 'max'=>22, 'min'=>6, 'tooLong'=>'密码请输入长度为6-22位字符', 'tooShort'=>'密码请输入长度为6-22位字符'),
//判断用户输入的是否是邮件
array('email','email','message'=>'邮箱格式错误'),
//检查用户输入的密码是否是一样的
array('verifyPassword', 'compare', 'compareAttribute'=>'password', 'message'=>'请再输入确认密码'),
//检查用户是否同意协议条款
array('agree', 'required', 'requiredValue'=>true,'message'=>'请确认是否同意隐私权协议条款'),
//判断是否是日期格式
array('created', 'date', 'format'=>'yyyy/MM/dd/ HH:mm:ss'),
//判断是否包含输入的字符
array('superuser', 'in', 'range' => array(0, 1)),
//正则验证器:
array('name','match','pattern'=>'/^[a-z0-9\-_]+$/'),
//数字验证器:
array('id', 'numerical', 'min'=>1, 'max'=>10, 'integerOnly'=>true),
//类型验证 integer,float,string,array,date,time,datetime
array('created', 'type', 'datetime'),
//文件验证:
array('filename', 'file', 'allowEmpty'=>true, 'types'=>'zip, rar, xls, pdf, ppt','tooLarge'=>'图片不要超过800K'),
array('url',
'file', //定义为file类型
'allowEmpty'=>true,
'types'=>'jpg,png,gif,doc,docx,pdf,xls,xlsx,zip,rar,ppt,pptx', //上传文件的类型
'maxSize'=>1024*1024*10, //上传大小限制,注意不是php.ini中的上传文件大小
'tooLarge'=>'文件大于10M,上传失败!请上传小于10M的文件!'
),
);