zoukankan      html  css  js  c++  java
  • 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 网站开发制作二次开发,小程序微信等
  • 相关阅读:
    MySQL时间字段如何自动获取插入时间
    web.xml启动顺序
    如何开启Redis
    Windows下启动Redis命令
    Tomcat无法启动:Server Tomcat v8.5 Server at localhost failed to start
    浏览器报:Uncaught SyntaxError: Unexpected end of input 解决办法
    链表查询,双表及多表
    Spring Boot项目中开启事务支持及使用
    Java Servlet基础整理(一)
    Linux下部署Tomcat
  • 原文地址:https://www.cnblogs.com/xiaohe520/p/12689274.html
Copyright © 2011-2022 走看看