php 验证规则,一些常用的正则,是fastadmin里面封装的

  1 /**
  2      * 验证字段值是否为有效格式    
  3      * @access protected
  4      * @param mixed     $value  字段值
  5      * @param string    $rule  验证规则
  6      * @param array     $data  验证数据
  7      * @return bool  
  8      */
  9     protected function is($value, $rule, $data = [])
 10     {
 11         switch ($rule) {
 12             case 'require':
 13                 // 必须
 14                 $result = !empty($value) || '0' == $value;
 15                 break;
 16             case 'accepted':
 17                 // 接受
 18                 $result = in_array($value, ['1', 'on', 'yes']);
 19                 break;
 20             case 'date':
 21                 // 是否是一个有效日期
 22                 $result = false !== strtotime($value);
 23                 break;
 24             case 'alpha':
 25                 // 只允许字母
 26                 $result = $this->regex($value, '/^[A-Za-z]+$/');
 27                 break;
 28             case 'alphaNum':
 29                 // 只允许字母和数字
 30                 $result = $this->regex($value, '/^[A-Za-z0-9]+$/');
 31                 break;
 32             case 'alphaDash':
 33                 // 只允许字母、数字和下划线 破折号
 34                 $result = $this->regex($value, '/^[A-Za-z0-9\-\_]+$/');
 35                 break;
 36             case 'chs':
 37                 // 只允许汉字
 38                 $result = $this->regex($value, '/^[\x{4e00}-\x{9fa5}]+$/u');
 39                 break;
 40             case 'chsAlpha':
 41                 // 只允许汉字、字母
 42                 $result = $this->regex($value, '/^[\x{4e00}-\x{9fa5}a-zA-Z]+$/u');
 43                 break;
 44             case 'chsAlphaNum':
 45                 // 只允许汉字、字母和数字
 46                 $result = $this->regex($value, '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9]+$/u');
 47                 break;
 48             case 'chsDash':
 49                 // 只允许汉字、字母、数字和下划线_及破折号-
 50                 $result = $this->regex($value, '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9\_\-]+$/u');
 51                 break;
 52             case 'activeUrl':
 53                 // 是否为有效的网址
 54                 $result = checkdnsrr($value);
 55                 break;
 56             case 'ip':
 57                 // 是否为IP地址
 58                 $result = $this->filter($value, [FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6]);
 59                 break;
 60             case 'url':
 61                 // 是否为一个URL地址
 62                 $result = $this->filter($value, FILTER_VALIDATE_URL);
 63                 break;
 64             case 'float':
 65                 // 是否为float
 66                 $result = $this->filter($value, FILTER_VALIDATE_FLOAT);
 67                 break;
 68             case 'number':
 69                 $result = is_numeric($value);
 70                 break;
 71             case 'integer':
 72                 // 是否为整型
 73                 $result = $this->filter($value, FILTER_VALIDATE_INT);
 74                 break;
 75             case 'email':
 76                 // 是否为邮箱地址
 77                 $result = $this->filter($value, FILTER_VALIDATE_EMAIL);
 78                 break;
 79             case 'boolean':
 80                 // 是否为布尔值
 81                 $result = in_array($value, [true, false, 0, 1, '0', '1'], true);
 82                 break;
 83             case 'array':
 84                 // 是否为数组
 85                 $result = is_array($value);
 86                 break;
 87             case 'file':
 88                 $result = $value instanceof File;
 89                 break;
 90             case 'image':
 91                 $result = $value instanceof File && in_array($this->getImageType($value->getRealPath()), [1, 2, 3, 6]);
 92                 break;
 93             case 'token':
 94                 $result = $this->token($value, '__token__', $data);
 95                 break;
 96             default:
 97                 if (isset(self::$type[$rule])) {
 98                     // 注册的验证规则
 99                     $result = call_user_func_array(self::$type[$rule], [$value]);
100                 } else {
101                     // 正则验证
102                     $result = $this->regex($value, $rule);
103                 }
104         }
105         return $result;
106     }
//XiaoHeQQ496631085 网站开发制作二次开发,小程序微信等

 

posted @ 2020-04-13 08:45  xiaohe520  阅读(557)  评论(0编辑  收藏  举报