我们在开发项目的时候往往会通过PHP的正则方式来判断用户所输入的信息是否合格或者正确,下面我给大家收集和整理成一个类,供大家参考和使用。
如有问题请留言谈论。
类:
= $min) ? true : false;
break;
case 2: //只匹配最大值
return ($max >= $len) ? true : false;
break;
default: //min <= $str <= max
return (($min <= $len) && ($len <= $max)) ? true : false;
}
}
public static function isPWD($value,$minLen=6,$maxLen=16){
$match='/^[\~!@#$%^&*()-_=+|{}[],.?/:;'"dw]{'.$minLen.','.$maxLen.'}$/';
$v = trim($value);
if(empty($v))
return false;
return preg_match($match,$v);
}
public static function isNames($value, $minLen=2, $maxLen=16, $charset='ALL'){
if(empty($value))
return false;
switch($charset){
case 'EN': $match = '/^[_wd]{'.$minLen.','.$maxLen.'}$/iu';
break;
case 'CN':$match = '/^[_x{4e00}-x{9fa5}d]{'.$minLen.','.$maxLen.'}$/iu';
break;
default:$match = '/^[_wdx{4e00}-x{9fa5}]{'.$minLen.','.$maxLen.'}$/iu';
}
return preg_match($match,$value);
}
public static function checkZip($str){
if(strlen($str)!=6){
return false;
}
if(substr($str,0,1)==0){
return false;
}
return true;
}
public static function checkDate($str){
$dateArr = explode("-", $str);
if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[2])) {
if (($dateArr[0] >= 1000 && $timeArr[0] <= 10000) && ($dateArr[1] >= 0 && $dateArr[1] <= 12) && ($dateArr[2] >= 0 && $dateArr[2] <= 31))
return true;
else
return false;
}
return false;
}
public static function checkTime($str){
$timeArr = explode(":", $str);
if (is_numeric($timeArr[0]) && is_numeric($timeArr[1]) && is_numeric($timeArr[2])) {
if (($timeArr[0] >= 0 && $timeArr[0] <= 23) && ($timeArr[1] >= 0 && $timeArr[1] <= 59) && ($timeArr[2] >= 0 && $timeArr[2] <= 59))
return true;
else
return false;
}
return false;
}
}下面我们以ThinkPHP框架为示例来演示该类使用方法。
本文以手机号验证作为实例,此验证类库还支持验证用户名、数字、邮箱、url、中文、长度、密码、日期和时间等,你可以很方便的应用到注册、登录等表单提交。
聪明的朋友也可以复制里面的正则,应用到js正则上。
public function check() {
import('Org.Util.Verify');
$verify = new Verify();
$mobile = I("post.mobile");
$rs = $verify->isMobile($mobile); //判断是否是手机号
if($rs == true){
echo 1;
}else{
echo -1;
}
}


