正则表达式(三):一个项目中的过滤类

本文介绍了一个PHP数据验证类,该类提供了多种方法来验证不同类型的数据输入,如账户名、密码、电话号码等,并详细解释了如何使用这些方法确保数据的有效性和合法性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
/**
 * @author Administrator
 *	过滤类
 *	用于存放验证数据合法性的类
 */
class FilterAction extends Action{
	/**
	 * @param 被测试的内容  	$account
	 * @param 长度限制的数组	 $length
	 * @return boolean
	 * utf8下匹配中文、数字、大小写英文、@、.
	 */
	public static function textAccount($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|@|\.){{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|@|\.){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * @param 被测试的内容  	$content
	 * @param 长度限制的数组	$length
	 * @return boolean
	 * utf8下匹配一定长度的任意字符
	 */
	public static function testPassword($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^.{{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^.{{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * @param 被测试的内容 		$content
	 * @param 长度限制的数组	 $length
	 * @return boolean
	 * utf8下匹配一定长度的数字
	 */
	public static function testPhone($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^\d{{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^\d{{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * 测试内容是否由中文、英文、数字组成
	 * @param 被测试的内容 		$content
	 * @param 长度限制的数组	$length
	 * @return boolean
	 */
	public static function testSiteName($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^[\x{4e00}-\x{9fa5}0-9a-zA-Z]{{$length['min']},{$length['max']}}$/u";
		}else{
			echo $rule ="/^[\x{4e00}-\x{9fa5}0-9a-zA-Z]{{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * 测试内容是否由中文、英文、数字、逗号组成
	 * 表单包括: , ,
	 * @param 被测试的内容 		$content
	 * @param 长度限制的数组	$length
	 * @return boolean
	 */
	public static function testSiteKeywords($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,){{$length['min']},{$length['max']}}$/u";
		}else{
			echo $rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * 测试内容是否由中文、英文、数字、逗号、句号、冒号、叹号、问号组成
	 * 	标点包括:, , . 。 : : !  ! ? ?
	 * @param 被测试的内容 		$content
	 * @param 长度限制的数组	$length
	 * @return boolean
	 */
	public static function testSiteDescription($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|\.|。|:|:|\!|!|\?|?){{$length['min']},{$length['max']}}$/u";
		}else{
			echo $rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|\.|。|:|:|\!|!|\?|?){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * 测试内容是否由中文、英文、数字、逗号、@、©组成
	 * @param 被测试的内容 		$content
	 * @param 长度限制的数组	$length
	 * @return boolean
	 */
	public static function testSiteCopyright($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|@|©|-|\s){{$length['min']},{$length['max']}}$/u";
		}else{
			echo $rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|@|©|-|\s){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * 测试内容是否是url
	 * @param string $content
	 * @return boolean
	 */
	public static function testUrl($content){
		$rule ="/^(https?:\/\/)?(((www\.)?[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)?\.([a-zA-Z]+))|(([0-1]?[0-9]?[0-9]|2[0-5][0-5])\.([0-1]?[0-9]?[0-9]|2[0-5][0-5])\.([0-1]?[0-9]?[0-9]|2[0-5][0-5])\.([0-1]?[0-9]?[0-9]|2[0-5][0-5]))(\:\d{0,4})?)(\/[\w- .\/?%&=]*)?$/i";
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * @param 被测试的内容  	$content
	 * @param 长度限制的数组	 $length
	 * @return boolean
	 * utf8下匹配中文、数字、英文、括号、逗号、顿号、换行、空格
	 * 标点:, , ( ( ) ) 
	 */
	public static function testAreaName($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|(|\(|)|\)|、|\s){{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|(|\(|)|\)|、|\s){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * @param unknown $content
	 * @param unknown $length
	 * @return boolean
	 * utf8下匹配中文、数字、英文、空格、括号、叹号、单引号
	 */
	public static function testSellerName($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|\s|\(|(|\)|)|!|!|'){{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|\s|\(|(|\)|)|!|!|'){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * utf-8下匹配二十四小时制的小时时间
	 * @param unknown $content
	 * @param unknown $length
	 * @return boolean
	 */
	public static function testHourTime($content){
		$rule = "/^([0-9]|0[0-9]|(1[0-9])|(2[0-4]))$/u";
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * utf-8匹配分钟
	 * @param unknown $content
	 * @return boolean
	 */
	public static function testSecondTime($content){
		$rule ="/^([0-9]|0[0-9]|(1[0-9])|(2[0-9])|3[0-9]|4[0-9]|5[0-9]|6[0-9])$/u";
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * utf-8下匹配货币格式,
	 * @param 要匹配的内容 $content
	 * @param 位数规范 $length  $length['beforePoint']-小数点前的位数;$length['afterPoint']->小数点后的位数
	 * @return boolean
	 */
	public static function testMoney($content,$length = array()){
		$rule ="/^([0-9]){1,{$length['beforePoint']}}|([0-9]){1,{$length['beforePoint']}}\.[0-9]{1,{$length['afterPoint']}}$/u";
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * utf8下匹配联系电话
	 * 匹配内容:数字、括号、横杠
	 * @param unknown $content
	 * @param unknown $length
	 * @return boolean
	 */
	public static function testContactPhone($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^(\d|\(|(|)|\)|-){{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^\d|\(|(|)|\)|-{{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * utf8下匹配商家简介
	 * 中文、数字、英文、逗号、句号、顿号、冒号、叹号、空格、换行、括号、问号
	 * @param unknown $content
	 * @param unknown $length
	 * @return boolean
	 */
	public static function testIntroduce($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|\.|、|\s|。|:|:|\!|!|\?|?|\(|(|)|\)){{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|\.|、|\s|。|:|:|\!|!|\?|?|\(|(|)|\)){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * 测试商家地址信息的正确性
	 * 中文、英文、数字、括号、逗号、句号
	 * @param unknown $content
	 * @param unknown $length
	 * @return boolean
	 */
	public static function testSellerAddress($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|\.|。|\(|(|)|\)){{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|\.|。|\(|(|)|\)){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * 测试商家菜品分类信息的正确性
	 * 中文、数字、英文、括号、顿号、逗号
	 * @param unknown $content
	 * @param unknown $length
	 * @return boolean
	 */
	public static function testSellerMealClassify($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|、|\(|(|)|\)){{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|、|\(|(|)|\)){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * 测试商家活动的
	 * @param unknown $content
	 * @param unknown $length
	 * @return boolean
	 */
	public function testActivity($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|\.|。|\(|(|)|\)|:|:|!|!|\s|\?|?|-){{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,|\.|。|\(|(|)|\)|:|:|!|!|\s|\?|?|-){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * 测试商家菜品名称信息的正确性
	 * 中文、数字、英文、括号、空格、加号
	 * @param unknown $content
	 * @param unknown $length
	 * @return boolean
	 */
	public static function testMeal($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|\s|\+|\(|(|)|\)){{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|\s|\+|\(|(|)|\)){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
	/**
	 * 测试商家菜品标记信息的正确性
	 * 中文、数字、英文、逗号
	 * @param unknown $content
	 * @param unknown $length
	 * @return boolean
	 */
	public static function testMealSign($content,$length = array()){
		if(!isset($length['length'])){
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,){{$length['min']},{$length['max']}}$/u";
		}else{
			$rule ="/^([\x{4e00}-\x{9fa5}0-9a-zA-Z]|,|,){{$length['length']}}$/u";
		}
		preg_match($rule,$content,$result);
		if(empty($result)){
			return false;
		}else{
			return true;
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值