php表单检查类

表单检查类,包括不为空,邮箱格式,手机号码格式,QQ格式,URL格式等:

<?php
class regexTool {
	
	private $validate = array(
				'require'   =>  '/.+/',
				'email'     =>  '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',
				'url'       =>  '/^http(s?):\/\/(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?$/',
				'currency'  =>  '/^\d+(\.\d+)?$/',
				'number'    =>  '/^\d+$/',
				'zip'       =>  '/^\d{6}$/',
				'integer'   =>  '/^[-\+]?\d+$/',
				'double'    =>  '/^[-\+]?\d+(\.\d+)?$/',
				'english'   =>  '/^[A-Za-z]+$/',
				'qq'		=>	'/^\d{5,11}$/',
				'mobile'	=>	'/^1(3|4|5|7|8)\d{9}$/',
			);
	private $returnMatchResult = false;
	private $fixMode = null;
	private $matches = array();
	private $isMatch = false;
	
	public function __construct($returnMatchResult = false, $fixMode = null) {
		$this->returnMatchResult = $returnMatchResult;
		$this->fixMode = $fixMode;
	}
	
	private function regex($pattern, $subject) {
		if(array_key_exists(strtolower($pattern), $this->validate))
			$pattern = $this->validate[$pattern].$this->fixMode;
		$this->returnMatchResult ?
			preg_match_all($pattern, $subject, $this->matches) :
			$this->isMatch = preg_match($pattern, $subject) === 1;
		return $this->getRegexResult();
	}
	
	private function getRegexResult() {
		if($this->returnMatchResult) {
			return $this->matches;
		} else {
			return $this->isMatch;
		}
	}
	
	public function toggleReturnType($bool = null) {
		if(empty($bool)) {
			$this->returnMatchResult = !$this->returnMatchResult;
		} else {
			$this->returnMatchResult = is_bool($bool) ? $bool : (bool)$bool;
		}
	}
	
	public function setFixMode($fixMode) {
		$this->fixMode = $fixMode;
	}
	
	public function noEmpty($str) {
		return $this->regex('require', $str);
	}
	
	public function isEmail($email) {
		return $this->regex('email', $email);
	}
	
	public function isMobile($mobile) {
		return $this->regex('mobile', $mobile);
	}
	
	public function check($pattern, $subject) {
		return $this->regex($pattern, $subject);
	}
}
?>
调用方法:

<?php
$username="mingming";
$email="ascsdcdc";
$mobile="123456789";
$regex = new regexTool();
if(!$regex->noEmpty($username)) exit('用户名是必须填写的!');
if(!$regex->isEmail($email)) exit('email格式错误!');
if(!$regex->isMobile($mobile)) exit('手机号格式错误!');
?>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值