首页 / 正则 / php常用验证类及正则
php常用验证类及正则
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php常用验证类及正则,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3547字,纯文字阅读大概需要6分钟。
内容图文
![php常用验证类及正则](/upload/InfoBanner/zyjiaocheng/200/541e452f5fa04bacbf15bd6ad5b556c8.jpg)
include "ValidateParameterConfig.php";
class Validation { private static function getRexp($rexp) { $_rexp = array ( 'letter_number'=>'/^[0-9A-Za-z]+$/',//只有字母数字包括大小写 'account'=>'/^[0-9A-Za-z_]+$/',//只有字母数字下划线包括大小写 'ids'=>'/^[0-9]+(\,[0-9]+)*$/',//验证多个id以','分割的类型 例如'1,2,3,4,5' 'number'=>'/^[0-9]+$/',//只可以使数字 'personal_card'=>'/^[0-9A-Za-z]+$/',//身份证 'email'=>'/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/',//邮箱 'date'=>'/^((((19|20)\d{2})-(0?(1|[3-9])|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$/'//日期,包含了闰年 ); if (isset($_rexp[$rexp])) { return $_rexp[$rexp]; } else { return $rexp_not_defind; } } public static function validate($data, $config) { $_config = ValidateParameterConfig::getConfig($config); $k = self::allowExist($data, $_config); if ($k !== null) { return $k; } foreach($_config as $k=>$c) { if (isset($data[$k])) { if(isset($c['rexp'])) { if (self::vRexp( $data[$k], $c['rexp']) === false) { return $k; } } if (isset($c['length'])) { if (self::vLength($data[$k], $c['length'])) { return $k; } } if (isset($c['min_length'])) { if (!self::vMinLength($data[$k], $c['min_length'])) { return $k; } } if (isset($c['max_length'])) { if (!self::vMaxLength($data[$k], $c['max_length'])) { return $k; } } } } return null; } private static function allowExist($data, $config) { foreach ($config as $k=>$v) { if (!isset($v['allow_exist']) || $v['allow_exist'] == true) { if (!isset($data[$k])) { return $k; } } } return null; } public static function vRexp($data, $rexp) { $_rexp = self::getRexp($rexp); if (preg_match($_rexp, $data) == false) { return false; } return true; } public static function vLength($data, $l) { if (strlen(trim($data)) == $l) { return false; } return true; } public static function vMinLength($data, $l) { if (strlen(trim($data)) < $l) { return false; } return true; } public static function vMaxLength($data, $l) { if (strlen(trim($data)) > $l) { return false; } return true; } public static function vLetterNumber($data) { if (preg_match(self::getRexp('letter_number'), $data) == false) { return false; } return true; } public static function vLetterNumber_($data) { if (preg_match(self::getRexp('letter_number_'), $data) == false) { return false; } return true; } public static function vNumber($data) { if (preg_match(self::getRexp('number'), $data) == false) { return false; } return true; } public static function vEmail($data) { if (preg_match(self::getRexp('email'), $data) == false) { return false; } return true; }
class ValidateParameterConfig { public static function getConfig ($key) { //'allow_exist'=>true或allow_exist不存在表示该参数必传 $_config = array( 'test'=>array( 'letter_number'=>array('rexp'=>'letter_number', 'allow_exist'=>true), 'number'=>array('rexp'=>'number', 'min_length'=>1'allow_exist'=>false), 'account'=>array('rexp'=>'account', 'max_length'=>20), ) ); if (isset($_config[$key])) { return $_config[$key]; } else { return $config_not_defind; } }}
使用例子:
从应用端发过来的参数为
$arr = array('letter_number'=>'abc123', 'account'=>'acb1234_');//参数验证$_msg = Validation::validate($arr, 'test');if ($_msg !== null) { return $_msg . ' is invalid parameter';}
内容总结
以上是互联网集市为您收集整理的php常用验证类及正则全部内容,希望文章能够帮你解决php常用验证类及正则所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。