PHP实现的常规正则验证helper公共类完整实例
本文实例讲述了PHP实现的常规正则验证helper公共类。分享给大家供大家参考,具体如下:
主要代码功能:弥补平时项目对于验证功能这块的不严谨。具体细分的常规验证,手机号/电话/小灵通验证,字符串长度区间合法验证,邮箱验证,使用正则验证数据.
/** * * *常规验证helper公共类 * * */ classCheckForm { //手机号/电话/小灵通验证 publicfunctionMobile_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); /** *中国移动:ChinaMobile 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); /** *中国联通:ChinaUnicom *130,131,132,152,155,156,185,186 */ $res[3]=preg_match('/^1(3[0-2]|5[256]|8[56])\\d{8}$/',$mobile); /** *中国电信:ChinaTelecom *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($typeas$key=>$val) { if($res[$val]) { $ok=true; } continue; } if($mobile&&$ok) { returntrue; }else{ returnfalse; } } //字符串长度区间合法验证 publicfunctionStrlength_check($str,$min=NULL,$max=NULL) { preg_match_all("/./u",$str,$matches); $len=count($matches[0]); if(is_null($min)&&!empty($max)&&$len<$max){ returnfalse; } if(is_null($max)&&!empty($min)&&$len>$min){ returnfalse; } if($len<$min||$len>$max){ returnfalse; } returntrue; } //邮箱验证 publicstaticfunctionisEmail($str) { if(!$str){ returnfalse; } returnpreg_match('#[a-z0-9&\-_.]+@[\w\-_]+([\w\-.]+)?\.[\w\-]+#is',$str)?true:false; } /** *使用正则验证数据 *@accesspublic *@paramstring$rule验证规则 *@paramstring$value要验证的数据 *@returnboolean */ publicfunctionregex($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)]; returnpreg_match($rule,$value)===1; } functionCheckPwd($pwd,$min=NULL,$max=NULL) { if(strlen($pwd)>$max||strlen($pwd)<$min||preg_match("/^\d*$/",$pwd)||preg_match("/^[a-z]*$/i",$pwd)) { returnfalse; } returntrue; } }
is_null()检测变量是否为NULL。
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php正则表达式用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。