特点

在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 "邮件验证:是<br />";
} else {
	echo "邮件验证:否<br />";
}

验证url方法 checkUrl

//note:验证url
if($v->checkUrl("http://www.ismole.net")) {
	echo "URL验证:是<br />";
} else {
	echo "URL验证:否<br />";
}

验证全英文字母方法 checkAlpha

//note:验证全英文字母,不限制长度
if($v->checkAlpha("abcd")) {
	echo "英文字母验证:是<br />";
} else {
	echo "英文字母验证:否<br />";
}

//note:验证全英文字母,限制长度
if($v->checkAlpha("abcd", 4)) {
	echo "英文字母验证:是<br />";
} else {
	echo "英文字母验证:否<br />";
}

验证数字方法 checkNumber

//note:验证全数字,不限制长度
if($v->checkNumber("1234")) {
	echo "数字验证:是<br />";
} else {
	echo "数字验证:否<br />";
}

//note:验证全数字,限制长度
if($v->checkNumber("1234", 4)) {
	echo "数字验证:是<br />";
} else {
	echo "数字验证:否<br />";
}

验证数字或字母 checkNumAlpha

//note:验证数字或字母,不限制长度
if($v->checkNumAlpha("12ab34ab")) {
	echo "数字或字母:是<br />";
} else {
	echo "数字或字母:否<br />";
}

//note:验证数字或字母,限制长度
if($v->checkNumAlpha("12ab34ab", 8)) {
	echo "数字或字母:是<br />";
} else {
	echo "数字或字母:否<br />";
}

验证数字和字母组合方法 checkBlend

//note:验证数字和字母的组合,不限制长度
if($v->checkBlend("aa11bb22cc33dd")) {
	echo "数字和字母的组合:是<br />";
} else {
	echo "数字和字母的组合:否<br />";
}

//note:验证数字和字母的组合,限制长度
if($v->checkBlend("a4aa4", 5)) {
	echo "数字和字母的组合,限制长度:是<br />";
} else {
	echo "数字和字母的组合,限制长度:否<br />";
}

//note:验证数字和字母的组合,指定长度
//note:指定最小长度4,最大长度13
if($v->checkBlend("aaaaaa33", 4, 13)) {
	echo "数字和字母的组合,指定长度:是<br />";
} else {
	echo "数字和字母的组合,指定长度:否<br />";
}

验证数字或字母或上,下划线方法 checkDash

//note:验证数字或字母,不限制长度
if($v->checkDash("12ab34ab_-")) {
	echo "数字和字母或上划线,下划线:是<br />";
} else {
	echo "数字和字母或上划线,下划线:否<br />";
}

//note:验证数字或字母,限制长度
if($v->checkDash("12ab34ab_-", 10)) {
	echo "数字和字母或上划线,下划线:是<br />";
} else {
	echo "数字和字母或上划线,下划线:否<br />";
}

验证浮点数方法 checkFloat

//note:验证浮点数
if($v->checkFloat("5.05435")) {
	echo "浮点数:是<br />";
} else {
	echo "浮点数:否<br />";
}

//note:验证最大长度
if($v->checkMax("abcd1234", 8)) {
	echo "最大长度:是<br />";
} else {
	echo "最大长度:否<br />";
}

验证最小长度方法 checkMin

//note:验证最小长度
if($v->checkMin("abcd123", 7)) {
	echo "最小长度:是<br />";
} else {
	echo "最小长度:否<br />";
}

验证是否一致方法 checkSame

//note:验证是否一致
if($v->checkSame("abcd123", "abcd123")) {
	echo "是否一致:是<br />";
} else {
	echo "是否一致:否<br />";
}

验证指定长度方法 checkLen

//note:验证指定长度
if($v->checkLen("abcde", 1, 5)) {
	echo "指定长度:是<br />";
} else {
	echo "指定长度:否<br />";
}

验证纯中文方法 checkChinese

//note:验证纯中文,不指定长度
if($v->checkChinese("奇矩互动")) {
	echo "纯中文:是<br />";
} else {
	echo "纯中文:否<br />";
}

//note:验证纯中文,指定长度
if($v->checkChinese("奇矩互动", 4)) {
	echo "纯中文:是<br />";
} else {
	echo "纯中文:否<br />";
}

验证IP地址方法 checkIp

//note:IP验证
if($v->checkIp("225.112.2.255")) {
	echo "IP验证:是<br />";
} else {
	echo "IP验证:否<br />";
}

验证日期格式方法 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 "日期验证:是<br />";
} else {
	echo "日期验证:否<br />";
}

验证时间格式方法 checkIsTime

//note:时间验证
//note:支持的格式 
//note:12:59:59
if($v->checkIsTime("23:59:59")) {
	echo "时间验证:是<br />";
} else {
	echo "时间验证:否<br />";
}

验证电话号码格式方法 checkPhone

//note:电话号码
//note:支持的格式 010-58871598或者58871598
if($v->checkPhone("010-58871598")) {
	echo "电话号码验证:是<br />";
} else {
	echo "电话号码验证:否<br />";
}

验证手机号码格式方法 checkMobile

//note:手机号码
//note:支持的格式 013开头,或者015开头 或者13开头 或者15开头的十一位数字
if($v->checkMobile("13911111111")) {
	echo "手机号码验证:是<br />";
} else {
	echo "手机号码验证:否<br />";
}

验证邮政编码格式方法 checkZip

//note:邮政编码
if($v->checkZip("100073")) {
	echo "邮政编码验证:是<br />";
} else {
	echo "邮政编码验证:否<br />";
}

自定义验证方法 checkCustom

//note:自定义验证
if($v->checkCustom("15555", "/^[1-9]\d{4,10}$/")) {
	echo "自定义验证QQ号码:是<br />";
} else {
	echo "自定义验证QQ号码:否<br />";
}

批量验证方法 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 "多项验证,不指定长度<Br />";
echo "<pre>";
print_r($backArray);

echo "多项验证,指定长度<Br />";
echo "<pre>";
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
)

 
documents/validationlasssyntax.txt · 最后更改: 2008/06/12 11:59 由 aming
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki