自己编写的一个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 }

 转载请注明出处!

posted @ 2014-08-22 22:26  Zell~Dincht  阅读(152)  评论(0编辑  收藏  举报