Ext JS の Ext.data.validator.* による検証についてメモっとく。モデルとフィールドのカスタム型に設定することができるバリデーターにはいくつか種類があるのだ。
継承ツリー
Ext.data.validator.* の継承ツリーを掲載しとく。標準で用意されているバリデーターである程度のことができる。Format に種類がないのは少し残念だが、正規表現で検証しているので実際のところは不便を感じないはず。
バリデーターの一覧
バリデーターを表にまとめておく。type
は Ext.data.Model でバリデーターを指定するときに設定する値。validate
は各バリデーターの検証が true になる条件。message
は設定できるエラーメッセージ。
なお Ext.data.validator.Bound は抽象クラスであり、Ext.data.validator.List は非公開クラスであるため、バリデーターの一覧からは除外している。
クラス | 説明 | type | validate | message |
---|---|---|---|---|
Validator | ベースになるバリデーター | base | 常に true | なし |
Length | 文字列の長さの範囲を検証するバリデーター | length | 文字列の長さが min と max の範囲内であれば true | emptyMessage, minOnlyMessage, maxOnlyMessage, bothMessage |
Range | 数値の範囲を検証するバリデーター | range | 数値が min と max の範囲内であれば true | emptyMessage, minOnlyMessage, maxOnlyMessage, bothMessage, nanMessage |
Format | 正規表現でフォーマットを検証するバリデーター | format | matcher に指定した正規表現に一致すれば true | message |
メールアドレスを検証するバリデーター | メールアドレスの正規表現に一致すれば true | message | ||
Exclusion | 指定値が含まれていないことを検証するバリデーター | exclusion | list に指定した値が含まれていなければ true | message |
Inclusion | 指定値が含まれていることを検証するバリデーター | inclusion | list に指定した値が含まれていれば true | message |
Presence | 値の存在を検証するバリデーター | presence | null か undefined か '' でなければ true(allowEmpty コンフィグで '' を妥当な値とみなすこともできる) | message |