# 驗證器
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
- 原子操作