====== 特点 ====== 在PHP开发过程中,数据验证是一件非常繁琐而且是必不可少的操作。当需要进行表单数据验证时,通常开发者必须自己编写一套验证的规则,MooPHP框架中的MooValidation类对于一些常用的数据验证如:邮件验证,url验证,数字,字母,IP地址,时间格式等等进行了封装,并且支持一次性验证多项数据,对于开发者来说大大了提高工作效率。当然,如果内置的格式不能满足您的验证需求,也可以通过自定义验证格式进行验证。 下面通过一些简单的示例,讲解如何通过MooValidation类库进行数据验证。 ====== 如何开始 ====== 在MooPHP框架中,您只需要通过 MooAutoLoad('MooValidation');就可以使用数据验证类,如: //note 加载MooPHP框架 require dirname(__FILE__).'/../../MooPHP/MooPHP.php'; $v = MooAutoLoad('MooValidation'); 这样我们就实例化了一个数据验证类 $v,接下来就可以使用 $v-> 方法名 进行数据验证。 ====== 验证邮件方法 checkEmail ====== //note:验证邮件 if($v->checkEmail("ismole@ismole.com")) { echo "邮件验证:是
"; } else { echo "邮件验证:否
"; }
====== 验证url方法 checkUrl ====== //note:验证url if($v->checkUrl("http://www.ismole.net")) { echo "URL验证:是
"; } else { echo "URL验证:否
"; }
====== 验证全英文字母方法 checkAlpha ====== //note:验证全英文字母,不限制长度 if($v->checkAlpha("abcd")) { echo "英文字母验证:是
"; } else { echo "英文字母验证:否
"; } //note:验证全英文字母,限制长度 if($v->checkAlpha("abcd", 4)) { echo "英文字母验证:是
"; } else { echo "英文字母验证:否
"; }
====== 验证数字方法 checkNumber ====== //note:验证全数字,不限制长度 if($v->checkNumber("1234")) { echo "数字验证:是
"; } else { echo "数字验证:否
"; } //note:验证全数字,限制长度 if($v->checkNumber("1234", 4)) { echo "数字验证:是
"; } else { echo "数字验证:否
"; }
====== 验证数字或字母 checkNumAlpha ====== //note:验证数字或字母,不限制长度 if($v->checkNumAlpha("12ab34ab")) { echo "数字或字母:是
"; } else { echo "数字或字母:否
"; } //note:验证数字或字母,限制长度 if($v->checkNumAlpha("12ab34ab", 8)) { echo "数字或字母:是
"; } else { echo "数字或字母:否
"; }
====== 验证数字和字母组合方法 checkBlend ====== //note:验证数字和字母的组合,不限制长度 if($v->checkBlend("aa11bb22cc33dd")) { echo "数字和字母的组合:是
"; } else { echo "数字和字母的组合:否
"; } //note:验证数字和字母的组合,限制长度 if($v->checkBlend("a4aa4", 5)) { echo "数字和字母的组合,限制长度:是
"; } else { echo "数字和字母的组合,限制长度:否
"; } //note:验证数字和字母的组合,指定长度 //note:指定最小长度4,最大长度13 if($v->checkBlend("aaaaaa33", 4, 13)) { echo "数字和字母的组合,指定长度:是
"; } else { echo "数字和字母的组合,指定长度:否
"; }
====== 验证数字或字母或上,下划线方法 checkDash ====== //note:验证数字或字母,不限制长度 if($v->checkDash("12ab34ab_-")) { echo "数字和字母或上划线,下划线:是
"; } else { echo "数字和字母或上划线,下划线:否
"; } //note:验证数字或字母,限制长度 if($v->checkDash("12ab34ab_-", 10)) { echo "数字和字母或上划线,下划线:是
"; } else { echo "数字和字母或上划线,下划线:否
"; }
====== 验证浮点数方法 checkFloat ====== //note:验证浮点数 if($v->checkFloat("5.05435")) { echo "浮点数:是
"; } else { echo "浮点数:否
"; } //note:验证最大长度 if($v->checkMax("abcd1234", 8)) { echo "最大长度:是
"; } else { echo "最大长度:否
"; }
====== 验证最小长度方法 checkMin====== //note:验证最小长度 if($v->checkMin("abcd123", 7)) { echo "最小长度:是
"; } else { echo "最小长度:否
"; }
====== 验证是否一致方法 checkSame====== //note:验证是否一致 if($v->checkSame("abcd123", "abcd123")) { echo "是否一致:是
"; } else { echo "是否一致:否
"; }
====== 验证指定长度方法 checkLen====== //note:验证指定长度 if($v->checkLen("abcde", 1, 5)) { echo "指定长度:是
"; } else { echo "指定长度:否
"; }
====== 验证纯中文方法 checkChinese====== //note:验证纯中文,不指定长度 if($v->checkChinese("奇矩互动")) { echo "纯中文:是
"; } else { echo "纯中文:否
"; } //note:验证纯中文,指定长度 if($v->checkChinese("奇矩互动", 4)) { echo "纯中文:是
"; } else { echo "纯中文:否
"; }
====== 验证IP地址方法 checkIp ====== //note:IP验证 if($v->checkIp("225.112.2.255")) { echo "IP验证:是
"; } else { echo "IP验证:否
"; }
====== 验证日期格式方法 checkIsDate ====== //note:日期验证 //note:支持的格式 //note:2008-01-01 2008-1-1 08-01-01 08-1-1 // 2008/01/01 2008/1/1 08/01/01 08/1/1 if($v->checkIsDate("2008-08-08")) { echo "日期验证:是
"; } else { echo "日期验证:否
"; }
====== 验证时间格式方法 checkIsTime ====== //note:时间验证 //note:支持的格式 //note:12:59:59 if($v->checkIsTime("23:59:59")) { echo "时间验证:是
"; } else { echo "时间验证:否
"; }
====== 验证电话号码格式方法 checkPhone ====== //note:电话号码 //note:支持的格式 010-58871598或者58871598 if($v->checkPhone("010-58871598")) { echo "电话号码验证:是
"; } else { echo "电话号码验证:否
"; }
====== 验证手机号码格式方法 checkMobile ====== //note:手机号码 //note:支持的格式 013开头,或者015开头 或者13开头 或者15开头的十一位数字 if($v->checkMobile("13911111111")) { echo "手机号码验证:是
"; } else { echo "手机号码验证:否
"; }
====== 验证邮政编码格式方法 checkZip ====== //note:邮政编码 if($v->checkZip("100073")) { echo "邮政编码验证:是
"; } else { echo "邮政编码验证:否
"; }
====== 自定义验证方法 checkCustom ====== //note:自定义验证 if($v->checkCustom("15555", "/^[1-9]\d{4,10}$/")) { echo "自定义验证QQ号码:是
"; } else { echo "自定义验证QQ号码:否
"; }
====== 批量验证方法 checkSundry ====== //note:多项验证,返回一个数组 /* * 可识别的类型为 email(邮件),url(url地址),alpha(英文字母),numalpha(数字和字母) * blend(数字和字母的组合),dash(数字和字母或上划线,下划线),float(浮点数),max(最大长度),min(最小长度) * len(指定长度),chinese(中文),ip(ip地址格式),isdate(日期格式),istime(时间格式) * phone(电话号码), mobile(手机号码),zip(邮政编码) * 传入数组方式如 下例: * 其中可指定长度的为number,alpha,chinese,numalpha,dash,max,min,len, * max,min,len为必需指定长度 */ //note:多项验证不指定长度 $checkArray = array( '0'=> array('Number', '1234567'), '1'=> array('Alpha', 'abc'), '2'=> array('email', 'ismole@ismole.com'), '3'=> array('url', 'http://www.ismole.com'), '4'=> array('chinese' , '奇矩互动'), '5'=> array('numalpha' , 'abcd1234'), '6'=> array('float' , '9.9'), '7'=> array('dash' , '1234abce-_'), '8'=> array('ip', '225.112.2.255'), '9'=> array('isdate', '2008-08-08'), '10'=> array('istime', '12:45:33'), '11'=> array('phone', '010-58871598'), '12'=> array('mobile', '13911111111'), '13'=> array('zip', '100073'), '14'=> array('custom', '15555', '/^[1-9]\d{4,10}$/'), '15'=> array('blend', 'a4a3r') ); //note:多项验证并指定长度 $checkArray2 = array( '0'=> array('number', '1234567', 7), '1'=> array('Alpha', 'abc', 3), '2'=> array('chinese' , '奇矩互动' ,4), '3'=> array('numalpha' , 'abcd1234', 8), '4'=> array('dash' , '1234abce-_', 10), '5'=> array('max' , 'abcd', 4), '6'=> array('min' , 'abcd', 4), '7'=> array('len' , 'abcdd', 2, 5), '8'=> array('blend', 'a4a3t',5), '9'=> array('blend', 'aaaa4dd43g', 5, 10) ); $backArray = $v->checkSundry($checkArray); $backArray2 = $v->checkSundry($checkArray2); echo "多项验证,不指定长度
"; echo "
";
print_r($backArray);

echo "多项验证,指定长度
"; echo "
";
print_r($backArray2);


以上示例返回如下:


邮件验证:是
URL验证:是
英文字母验证:是
英文字母验证:是
数字验证:是
数字验证:是
数字或字母:是
数字或字母:是
数字和字母或上划线,下划线:是
数字和字母或上划线,下划线:是
数字和字母的组合:是
数字和字母的组合,限制长度:是
数字和字母的组合,指定长度:是
浮点数:是
最大长度:是
最小长度:是
是否一致:是
指定长度:是
纯中文:是
纯中文:是
自定义验证QQ号码:是
IP验证:是
日期验证:是
时间验证:是
电话号码验证:是
手机号码验证:是
邮政编码验证:是
多项验证,不指定长度

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 1
    [4] => 1
    [5] => 1
    [6] => 1
    [7] => 1
    [8] => 1
    [9] => 1
    [10] => 1
    [11] => 1
    [12] => 1
    [13] => 1
    [14] => 1
    [15] => 1
)

多项验证,指定长度

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 1
    [4] => 1
    [5] => 1
    [6] => 1
    [7] => 1
    [8] => 1
    [9] => 1
)