自己编写的一个PHP超简易正则类
这个类的作用就判断正则表达式的对或者错,我们要记住的就是在静态变量$reg这个数组中的键值而已,要用的时候复制+粘贴即可。
如果还有正则表达式,要添加这个类中,只需要1步:
①在$reg数组中,自定义 【键】正则名称 => '正则表达式', //比如: "username" => "/^[\w]+$/",
剩下的就是调用,直接看注释部分。
代码:
1 <?php 2 /** 3 * 正则表达式 - 类 4 * 主要是定义正则表达式 5 * 调用方法: 6 * 参数1:$type 字符串,和self::$reg 的数值中的键相同即可 7 * 参数2:$v 匹配的字符串 8 * 在该框架中,用的 9 * $reg = new regex($type, $v); 10 * $ret = $reg::checkRule(); 11 * return [type: boolean] 返回值是布尔值 12 * @author Zell Dintch 13 * mktime 2014/08/22 22:25 14 */ 15 class regex { 16 static private $reg = array( 17 //整数或者含2位小数,小数是2位 18 "NF" => "/^[0-9]+\.{0,1}[0-9]{0,2}$/", 19 //简单粗暴的身份证号 20 "IDCard" => "/^\d{15}|\d{18}$/", 21 //形如: xxx-xxxxxxxx-xxx的电话号码 22 "phone" => "/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/", 23 //常用11位手机号码 24 "tel" => "/^(?:13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/", 25 //邮箱 26 "email" => "/^[0-9a-zA-Z]+([\._\-][0-9a-zA-Z]+)*@[0-9a-zA-Z_\-]+(\.[0-9a-zA-Z_\-]+)+$/", 27 //汉字、字母、数字或下划线或中横线 28 "nickname" => "/^[a-zA-Z0-9\_\-\x{4e00}-\x{9fa5}]+$/u", 29 //只能输入 30 "CC" => "/^[\x{4e00}-\x{9fa5}]+$/u", 31 //用户名(4-30位字母开头的字符,支持数字、字母或下划线) 32 "username" => "/^[a-zA-Z]\w{3,29}$/", 33 //只能输入非零的正整数 34 "pInt" => "/^[1-9][0-9]*$/", 35 //有2位小数的正实数 -- 形如: 123.11 23.22 345.33 36 "prNum" => "/^\+?[0-9]+\.\d{2}$/", 37 //同上,但可以取整数 -- 形如: 123 123.11 1234.45 38 "prNum2" => "/^\+?[0-9]+\.\d{2}$/", 39 //只能输入0和非0开头的正整数 40 "pIntAndZero" => "/^(0|[1-9][0-9]*)$/", 41 //整数 42 "int" => "/^\d+$/", 43 //匹配小数或者整数 44 "floatOrInt" => "/^\d+(?:\.\d+)?$/", 45 //匹配小数 46 "floatN" => "/^(?:\d+\.\d+)$/" 47 ); 48 //定义接收传递的参数 49 static private $val = ''; 50 //定义类型 51 static private $key = ''; 52 public function __construct ($type, $v) { 53 self::$val = $v; 54 //查找$type是不是$reg中的键 55 if (array_key_exists($type,self::$reg)) { 56 self::$key = $type; 57 } else { 58 self::$key = false; 59 } 60 } 61 //验证整数或者含2位小数,小数是2位 62 static public function checkRule () { 63 if (self::$key == false) { 64 return false; 65 } 66 if (!preg_match(self::$reg[self::$key], self::$val)) { 67 echo 2; 68 return false; 69 } else { 70 echo 3; 71 return true; 72 } 73 } 74 75 }
转载请注明出处!
---- 始终相信这句:
----“做每天该做的事,不计结果!”
---- 因爲對於編程還只是新手,對很多知識掌握的不牢靠,歡迎大家批評指正~~|=-=|~~
----“做每天该做的事,不计结果!”
---- 因爲對於編程還只是新手,對很多知識掌握的不牢靠,歡迎大家批評指正~~|=-=|~~