VailData数据验证类

jerry thinkphp 2015年11月20日 收藏
VailData数据验证类是用于服务器端(PHP)验证传入的数据值的合法性,简单易用
VailData验证类,插件
说明:
VailData验证类,提供内置函数有'a','e','f','s','n','r','q','t','p','u'
a函数:判断是否为空
e函数:验证Email
f函数:判断两值是否相等
r函数:正则表达式验证
q函数:验证qq
t函数:验证手机
p函数:验证电话
u函数:验证url

规则如下:
s函数:
s1-10 表示:必须是字符串类型并且1-10位之间
s1, 表示:必须是字符串类型并且在1位以上
s10 表示:必须是字符串类型并且长度必须等于10位

n函数:
n函数和s函数的使用方法一致,但是区别在于函数是判断是否是数字类型

e函数:
e函数无附加参数类型如:e1-10,e10,e10,都是错误的

f函数:
判断两值是否相等,只能提供表单名或数组的键名如,密码和密码确认判断
表单:password,repeat_password
可以使用f函数
password=>array(frepeat_password,'密码和密码确认不一致!!!');
r函数:
使用任意正则表达式
如用户名验证必须以字母开头
'username'=>array('r/[a-z][\w]/i','用户名格式不正确!!!');
q函数,t函数,p函数,u函数:
无特别意义,示例如下:
qq=>array('q','QQ号码格式不正确');
tel=>array('t','手机号码格式不正确');
phone=>array('p','电话格式不正确');
url=>array('u','URL格式不正确');
VailData函数可执行简单逻辑判断如:
验证是否是email并且长度在10位以上
那么验证规则则为
'email'=>array('e&s10,','Email格式不正确!!!');
验证可以是电话号码也可以是手机号码
'tel_phone'=>array('t|p')
特别验证(可能例子不太洽当)
'test'=>array('e&s10,|n10','Test格式不正确');
以上示例表明
是Email类型必须是10位以上或者是数字类型并且是10位

除此之外:VailData验证类还可以传入自定义的函数或对像验证这及大的提高的VailData验证类的扩展性如:
但不管是函数还是方法,必须符合以下规范
1,只能返回true或false,也可返回字符串值,但VailData都会以boolean值形式来处理
2,必须绑定一个参数,如
你需要验证这个值是否是和你传入的值相等,你必须要以以下格式
function($string,$eqVal) {
    return $string == $eqVal;
}
此是$string,值由VailData自动赋值,

参考示例
class B{
    public function test_eq($string,$eq_val) {
        return $string === $eq_val;
    }
}
验证规则
require B.class.php;
'test'=>array(new B(),'test_eq',参数1,参数2,...,'错误的提示信息');
注意,这里传的参数是从$eq_val开始的,$string,由VailData自动传入

普通函数传入示例
functions.php
function test($string,$eq_val) {
    return $string === $eq_val;
}
'test'=>array('_test',参数1,参数2,...,'错误的提示信息');
//外部函数以"_"为标识,
同方法一样这里传的参数是从$eq_val开始的,$string,由VailData自动传入

如果验证出错可使用以下方式来判断
if(!$b['vail_status']) parent::error($b['vail_error']);
//具体可参考示例
如果成功,它会返回你之前传入的数组

下面是具体示例:
if (isset($_POST['send'])) {
    $postData = VailData::_vailData()->_check(array(
         'username'=>array('s6-10|n6-10|r/^[1]{3}$/|s5,','用户名格式不正确'),
         'password'=>array('s10|a','密码格式不正确'),
         'repeat_password'=>array('fpassword|n10,','密码确认格式不正确'),
         'email'=>array('e&s10,|n10,','Email格式不正确'),
         'remark'=>array('n10&s10','备注不能为空'),
         'phone'=>array('s10,','电话格式不正确!!!'),
         'remark'=>array('_check','8959','备注格式不正逗趣儿 '),//外部函数,函数名前名必须加上_
        'remark'=>array(new B(),'test','8959','备注格式不正逗趣儿 '),
    ), $_POST);
    if(!$postData['vail_status']) parent::error($postData['vail_error']);
}
以上就是VailData的使用方法
刚完成不久,可能还有很多需要完善的地方和修补的Bug,希望大家多多提意见,