PHPackages                             kun/validator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. kun/validator

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

kun/validator
=============

 yaf validator

00[1 PRs](https://github.com/congyukun/Validator/pulls)PHP

Since May 5Pushed 3y ago1 watchersCompare

[ Source](https://github.com/congyukun/Validator)[ Packagist](https://packagist.org/packages/kun/validator)[ RSS](/packages/kun-validator/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (2)Used By (0)

### Kun Validator 表单验证

[](#kun-validator-表单验证)

1. #### 可以这样使用

    [](#可以这样使用)

    ```
    use Kun\Validator;

    //校验规则
    $rule = [
        'name'  => 'require|max:25',
        'age'   => 'number|between:1,120',
        'email' => 'email',
    ];
    //自定义内容（可以不填写，已做基础处理）
    $msg = [
        'name.require' => '名称必须',
        'name.max'     => '名称最多不能超过25个字符',
        'age.number'   => '年龄必须是数字',
        'age.between'  => '年龄只能在1-120之间',
        'email'        => '邮箱格式错误',
    ];
    //待校验参数
    $data = [
        'name'  => 'thinkphp',
        'age'   => 10,
        'email' => 'thinkphp@qq.com',
    ];

    $validate = Validator::make($rule, $msg);
    if (!validate->check ($data)) {
          throw new Exception($validate->getError());
      }
    ```

### 本验证类 从thinkphp5.0 中 采摘而来，后续如果不满足，可自行 修改增加方法，切记一定要验证

[](#本验证类-从thinkphp50-中-采摘而来后续如果不满足可自行-修改增加方法切记一定要验证)

#### 文档地址:[内置规则 · ThinkPHP5.0完全开发手册 · 看云 (kancloud.cn)](https://www.kancloud.cn/manual/thinkphp5/129356)

[](#文档地址内置规则--thinkphp50完全开发手册--看云-kancloudcn)

### 格式验证类(用的时候测试一下哈，有一部分没测试)

[](#格式验证类用的时候测试一下哈有一部分没测试)

> ### require
>
> [](#require)

验证某个字段必须，例如：

```
'name'=>'require'
```

> ### number 或者 integer
>
> [](#number-或者-integer)

验证某个字段的值是否为数字（采用`filter_var`验证），例如：

```
'num'=>'number'
```

> ### float
>
> [](#float)

验证某个字段的值是否为浮点数字（采用`filter_var`验证），例如：

```
'num'=>'float'
```

> ### boolean
>
> [](#boolean)

验证某个字段的值是否为布尔值（采用`filter_var`验证），例如：

```
'num'=>'boolean'
```

> ### email
>
> [](#email)

验证某个字段的值是否为email地址（采用`filter_var`验证），例如：

```
'email'=>'email'
```

> ### array
>
> [](#array)

验证某个字段的值是否为数组，例如：

```
'info'=>'array'
```

> ### accepted
>
> [](#accepted)

验证某个字段是否为为 yes, on, 或是 1。这在确认"服务条款"是否同意时很有用，例如：

```
'accept'=>'accepted'
```

> ### date
>
> [](#date)

验证值是否为有效的日期，例如：

```
'date'=>'date'
```

会对日期值进行`strtotime`后进行判断。

> ### alpha
>
> [](#alpha)

验证某个字段的值是否为字母，例如：

```
'name'=>'alpha'
```

> ### alphaNum
>
> [](#alphanum)

验证某个字段的值是否为字母和数字，例如：

```
'name'=>'alphaNum'
```

> ### alphaDash
>
> [](#alphadash)

验证某个字段的值是否为字母和数字，下划线`_`及破折号`-`，例如：

```
'name'=>'alphaDash'
```

> ### chs
>
> [](#chs)

验证某个字段的值只能是汉字，例如：

```
'name'=>'chs'
```

> ### chsAlpha
>
> [](#chsalpha)

验证某个字段的值只能是汉字、字母，例如：

```
'name'=>'chsAlpha'
```

> ### chsAlphaNum
>
> [](#chsalphanum)

验证某个字段的值只能是汉字、字母和数字，例如：

```
'name'=>'chsAlphaNum'
```

> ### chsDash
>
> [](#chsdash)

验证某个字段的值只能是汉字、字母、数字和下划线\_及破折号-，例如：

```
'name'=>'chsDash'
```

> ### activeUrl
>
> [](#activeurl)

验证某个字段的值是否为有效的域名或者IP，例如：

```
'host'=>'activeUrl'
```

> ### url
>
> [](#url)

验证某个字段的值是否为有效的URL地址（采用`filter_var`验证），例如：

```
'url'=>'url'
```

> ### ip
>
> [](#ip)

验证某个字段的值是否为有效的IP地址（采用`filter_var`验证），例如：

```
'ip'=>'ip'
```

支持验证ipv4和ipv6格式的IP地址。

> ### dateFormat:format
>
> [](#dateformatformat)

验证某个字段的值是否为指定格式的日期，例如：

```
'create_time'=>'dateFormat:y-m-d'
```

长度和区间验证类
--------

[](#长度和区间验证类)

> ### in
>
> [](#in)

验证某个字段的值是否在某个范围，例如：

```
'num'=>'in:1,2,3'
```

> ### notIn
>
> [](#notin)

验证某个字段的值不在某个范围，例如：

```
'num'=>'notIn:1,2,3'
```

> ### between
>
> [](#between)

验证某个字段的值是否在某个区间，例如：

```
'num'=>'between:1,10'
```

> ### notBetween
>
> [](#notbetween)

验证某个字段的值不在某个范围，例如：

```
'num'=>'notBetween:1,10'
```

> ### length:num1,num2
>
> [](#lengthnum1num2)

验证某个字段的值的长度是否在某个范围，例如：

```
'name'=>'length:4,25'
```

或者指定长度

```
'name'=>'length:4'
```

> 如果验证的数据是数组，则判断数组的长度。 如果验证的数据是File对象，则判断文件的大小。

> ### max:number
>
> [](#maxnumber)

验证某个字段的值的最大长度，例如：

```
'name'=>'max:25'
```

> 如果验证的数据是数组，则判断数组的长度。 如果验证的数据是File对象，则判断文件的大小。

> ### min:number
>
> [](#minnumber)

验证某个字段的值的最小长度，例如：

```
'name'=>'min:5'
```

> 如果验证的数据是数组，则判断数组的长度。 如果验证的数据是File对象，则判断文件的大小。

> ### after:日期
>
> [](#after日期)

验证某个字段的值是否在某个日期之后，例如：

```
'begin_time' => 'after:2016-3-18',
```

> ### before:日期
>
> [](#before日期)

验证某个字段的值是否在某个日期之前，例如：

```
'end_time'   => 'before:2016-10-01',
```

> ### expire:开始时间,结束时间
>
> [](#expire开始时间结束时间)

验证当前操作（注意不是某个值）是否在某个有效日期之内，例如：

```
'expire_time'   => 'expire:2016-2-1,2016-10-01',
```

> ### allowIp:allow1,allow2,...
>
> [](#allowipallow1allow2)

验证当前请求的IP是否在某个范围，例如：

```
'name'   => 'allowIp:114.45.4.55',
```

该规则可以用于某个后台的访问权限

> ### denyIp:allow1,allow2,...
>
> [](#denyipallow1allow2)

验证当前请求的IP是否禁止访问，例如：

```
'name'   => 'denyIp:114.45.4.55',
```

字段比较类
-----

[](#字段比较类)

> ### confirm
>
> [](#confirm)

验证某个字段是否和另外一个字段的值一致，例如：

```
'repassword'=>'require|confirm:password'
```

`5.0.4+`版本开始，增加了字段自动匹配验证规则，如password和password\_confirm是自动相互验证的，只需要使用

```
'password'=>'require|confirm'
```

会自动验证和password\_confirm进行字段比较是否一致，反之亦然。

> ### different
>
> [](#different)

验证某个字段是否和另外一个字段的值不一致，例如：

```
'name'=>'require|different:account'
```

> ### eq 或者 = 或者 same
>
> [](#eq-或者--或者-same)

验证是否等于某个值，例如：

```
'score'=>'eq:100'
'num'=>'=:100'
'num'=>'same:100'
```

> ### egt 或者 &gt;=
>
> [](#egt-或者-)

验证是否大于等于某个值，例如：

```
'score'=>'egt:60'
'num'=>'>=:100'
```

> ### gt 或者 &gt;
>
> [](#gt-或者-)

验证是否大于某个值，例如：

```
'score'=>'gt:60'
'num'=>'>:100'
```

> ### elt 或者 &lt;=
>
> [](#elt-或者-)

验证是否小于等于某个值，例如：

```
'score'=>'elt:100'
'num'=>'
