主要代码功能: 弥补平时项目对于验证功能这块的不严谨。具体细分的常规验证, 手机号/电话/小灵通验证, 字符串长度区间合法验证, 邮箱验证, 使用正则验证数据.


/** 

  * 

  * 

  * 常规验证helper公共类 

  * 

  * 

  */ 

 class CheckForm 

 { 

//手机号/电话/小灵通 验证 

public function Mobile_check($mobile,$type = array()) 

{ 

/** 

* 手机号码 

* 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188 

* 联通:130,131,132,152,155,156,185,186 

* 电信:133,1349,153,180,189 

*/ 

$res[1]= preg_match('/^1(3[0-9]|5[0-35-9]|8[0-9])\\d{8}$/', $mobile); 



/** 

* 中国移动:China Mobile 

11         * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188 

*/ 

$res[2]= preg_match('/^1(34[0-8]|(3[5-9]|5[017-9]|8[0-9])\\d)\\d{7}$/', $mobile); 



/** 

* 中国联通:China Unicom 

* 130,131,132,152,155,156,185,186 

*/ 

$res[3]= preg_match('/^1(3[0-2]|5[256]|8[56])\\d{8}$/', $mobile); 



/** 

* 中国电信:China Telecom 

* 133,1349,153,180,189 

*/ 

$res[4]= preg_match('/^1((33|53|8[09])[0-9]|349)\\d{7}$/', $mobile); 



/** 

* 大陆地区固话及小灵通 

* 区号:010,020,021,022,023,024,025,027,028,029 

* 号码:七位或八位 

*/ 

$res[5]= preg_match('/^0(10|2[0-5789]|\\d{3})-\\d{7,8}$/', $mobile); 

$type 
 = empty($type) ? array(1,2,3,4,5) : $type; 

$ok = false; 

foreach ($type as $key=>$val) 

{ 

if ($res[$val]) 

{ 

$ok = true; 

} 

continue; 

} 

if ( $mobile && $ok ) 

{ 

return true; 

}else{ 

return false; 

} 



} 

//字符串长度区间合法验证 

public function Strlength_check($str, $min=NULL, $max=NULL) 

{ 

preg_match_all("/./u", $str, $matches); 

$len = count($matches[0]); 

if(is_null($min) && !empty($max) && $len < $max){ 

return false; 

} 

if(is_null($max) && !empty($min) && $len > $min){ 

return false; 

} 

if ($len < $min || $len > $max) { 

return false; 

} 

return true; 

} 

//邮箱验证 

public static function isEmail($str) 

{ 

if (!$str) { 

return false; 

} 

return preg_match('#[a-z0-9&\-_.]+@[\w\-_]+([\w\-.]+)?\.[\w\-]+#is', $str) ? true : false; 

} 



/** 

* 使用正则验证数据 

* @access public 

* @param string $rule 验证规则 

* @param string $value  要验证的数据 

* @return boolean 

*/ 

public function regex($rule,$value) { 

$validate = array( 

//字段必须,不能为空 

             'require'   =>  '/\S+/', 

//邮箱验证 

             'email'     =>  '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/', 

//url验证 

             'url'       =>  '/^http(s?):\/\/(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?$/', 

//货币验证 

             'currency'  =>  '/^\d+(\.\d{0,2})?$/', 

//数字验证 

             'number'    =>  '/^[-\+]?\d+(\.\d+)?$/', 

//zip验证 

             'zip'       =>  '/^\d{6}$/', 

//整数验证 

             'integer'   =>  '/^[-\+]?\d+$/', 

//浮点数验证 

             'double'    =>  '/^[-\+]?\d+(\.\d+)?$/', 

//英文验证 

             'english'   =>  '/^[A-Za-z]+$/', 

             'gt0'   
 =>  '/^(?!(0[0-9]{0,}$))[0-9]{1,}[.]{0,}[0-9]{0,}$/', 

//合法帐号 

'account' 
  => 
 '/^[a-zA-Z][a-zA-Z0-9_]{1,19}$/' 

); 

// 检查是否有内置的正则表达式 

if(isset($validate[strtolower($rule)])) 

$rule = $validate[strtolower($rule)]; 

return preg_match($rule,$value)===1; 

} 

function CheckPwd($pwd,$min=NULL, $max=NULL) 

{ 

if (strlen($pwd)>$max || strlen($pwd)<$min || preg_match("/^\d*$/",$pwd) || preg_match("/^[a-z]*$/i",$pwd)) 

{ 

return false; 

} 

return true; 

     } 

 } 



is_null() 检测变量是否为 NULL。