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 网站开发制作二次开发,小程序微信等