# 验证器
Nette \ Utils \ Validators
Nette \ Utils \ Validators是一个具有用于数据验证的有用函数的静态类。
所有示例假定创建了别名:
~~~
use Nette\Utils\Validators;
~~~
## 规则
规则定义以与Latte过滤器相似的方式写入。 每个规则用竖线(|)分隔,并且可选地在冒号后面带参数后缀。
| 类型 | 规则 |
| --- | --- |
| bool, boolean | 布尔值 |
| int, integer | 整数 |
| float | 浮点数 |
| number | 整数或浮点数 |
| numeric | 数字,包括文本表示 |
| numericint | 整数,包括文本表示 |
| string |字符串 |
| unicode | UTF-8 字符串 |
| array | 数组 |
| list | 非关联数组 |
| object | 对象 |
| resource | 资源 |
| scalar | 返回 |
| null | null |
| Value | |
| --- | --- |
| email | email |
| url | url |
| none | “empty value” |
**is($value, $expected)**
验证输入是否符合规则。
~~~
Validators::is('Nette Framework', 'string:15'); // 15个字符长字符串
Validators::is('Nette Framework', 'string:8..'); // 最少8个字符长的字符串
Validators::is('Nette Framework', 'string:..32'); // 最多32个字符长的字符串
Validators::is('Nette Framework', 'string:8..32'); // 最少8个字符,最多32个字符
Validators::is(23, 'int:0..10'); // 0到10之间的整数
Validators::is(1, 'int|float'); // 整数或浮点数(可写为'number')
~~~
**assert($value, $expected, $label = ‘variable’)**
验证输入是否对应于规则,否则抛出断言异常。
~~~
Validators::assert('Nette Framework', 'string:15'); // ok
Validators::assert('Lorem ipsum dolor sit', 'string:78'); // exception
// The variable expects to be string:78, string 'Lorem ipsum dolor sit' given.
~~~
**assertField($arr, $field, $expected = NULL, $label = “item ‘%’ in array”)**
验证数组项是否对应于规则,否则抛出断言异常
~~~
$arr = ['nette' => 'framework'];
Validators::assertField($arr, 'nette', 'string:15'); // ok
Validators::assertField($arr, 'foo', 'string:15'); // exception
// Missing item 'foo' in array.
Validators::assertField($arr, 'nette', 'int'); // exception
// The item 'nette' in array expects to be int, string 'framework' given.
~~~
## 验证器
isNumericInt($value)
验证输入是否为整数。
~~~
Validators::isNumericInt(23); // true
Validators::isNumericInt(1.78); // false
Validators::isNumericInt('42'); // true
Validators::isNumericInt('3.14'); // false
Validators::isNumericInt('nette'); // false
~~~
isNumeric($value)
验证输入是否为数字。
~~~
Validators::isNumeric(23); // true
Validators::isNumeric(1.78); // true
Validators::isNumeric('42'); // true
Validators::isNumeric('3.14'); // true
Validators::isNumeric('nette'); // false
~~~
isCallable($value)
验证输入是否可调用。
~~~
Validators::isCallable('Foo::bar'); // true
Validators::isCallable([$foo, 'bar']); // true
Validators::isCallable(['Foo::bar']); // true
Validators::isCallable('Lorem ipsum dolor sit...'); // false
Validators::isCallable(23); // false
Validators::isCallable(FALSE); // false
~~~
isUnicode($value)
验证输入是否为有效的UTF-8字符串。
~~~
Validators::isUnicode('nette'); // true
Validators::isUnicode(''); // true
Validators::isUnicode(1); // false
~~~
isNone($value)
验证输入是((无))“空”。
~~~
Validators::isNone(0); // true
Validators::isNone(''); // true
Validators::isNone(FALSE); // true
Validators::isNone(NULL); // true
Validators::isNone('nette'); // false
~~~
isList($value)
验证输入是非关联数组。
~~~
Validators::isList(['foo', 'bar']); // true
Validators::isList(['foo' => 'Bar']); // false
~~~
isInRange($value, array $range)
验证输入是否在给定范围内。
~~~
Validators::isInRange(5, [0, 5]); // true
Validators::isInRange(23, [NULL, 5]); // false
Validators::isInRange(23, [5]); // true
Validators::isInRange(1, [5]); // false
~~~
isEmail($value)
验证输入是否是有效的电子邮件地址。
~~~
Validators::isEmail('example@nette.org'); // true
Validators::isEmail('nette'); // false
~~~
isUrl($value)
验证输入是否是有效的URL地址。
~~~
Validators::isUrl('https://nette.org'); // true
Validators::isUrl('nette'); // false
~~~
- Nette简介
- 快速开始
- 入门
- 主页
- 显示文章详细页
- 文章评论
- 创建和编辑帖子
- 权限验证
- 程序员指南
- MVC应用程序和控制器
- URL路由
- Tracy - PHP调试器
- 调试器扩展
- 增强PHP语言
- HTTP请求和响应
- 数据库
- 数据库:ActiveRow
- 数据库和表
- Sessions
- 用户授权和权限
- 配置
- 依赖注入
- 获取依赖关系
- DI容器扩展
- 组件
- 字符串处理
- 数组处理
- HTML元素
- 使用URL
- 表单
- 验证器
- 模板
- AJAX & Snippets
- 发送电子邮件
- 图像操作
- 缓存
- 本土化
- Nette Tester - 单元测试
- 与Travis CI的持续集成
- 分页
- 自动加载
- 文件搜索:Finder
- 原子操作