ZValidate
参数验证工具.
安装
$ npm install zvalidate --save
使用
API
ZValidate
Class
constructor([options])
- new ClassZValidate
instanceoptions.translate
- translate function
validate(rule, value)
- validate thevalue
conforms torule
. return an array of errors if break rule.addRule(type, check)
- add custom rules.type
- rule type, required and must be string type.check
- check handler. can be afunction
or aRegExp
.
Example
var v = ; var zvalidate = { // 方法 }; var data = name: 'foo' age: 24 gender: 'male'; var rule = name: 'string' age: 'int' gender: 'male' 'female' 'unknown'; var errors = v;
例子
规则
common rule
required
- ifrequired
is set to false, this property can be empty. default totrue
.type
- The type of property, every type has it's own rule for the validate.
int
If type is int
, there has tow addition rules:
max
- The maximum of the value,value
must <=max
.min
- The minimum of the value,value
must >=min
.
integer
Alias to int
.
number
If type is number
, there has tow addition rules:
max
- The maximum of the value,value
must <=max
.min
- The minimum of the value,value
must >=min
.
date
The date
type want to match YYYY-MM-DD
type date string.
dateTime
The dateTime
type want to match YYYY-MM-DD HH:mm:ss
type date string.
datetime
Alias to dateTime
.
id
The id
type want to match /^\d+$/
type date string.
boolean
Match boolean
type value.
bool
Alias to boolean
string
If type is string
, there has four addition rules:
allowEmpty
(alias toempty
) - allow empty string, default to false.format
- ARegExp
to check string's format.max
- The maximum length of the string.min
- The minimum length of the string.
The email
type want to match RFC 5322 email address.
allowEmpty
- allow empty string, default is false.
password
The password
type want to match /^$/
type string.
compare
- Compare field to check equal, default null, not check.max
- The maximum length of the password.min
- The minimum length of the password, default is 6.
url
The url
type want to match web url.
enum
If type is enum
, it requires an addition rule:
values
- An array of data,value
must be one on them. this rule is required.
object
If type is object
, there has one addition rule:
rule
- An object that validate the properties ot the object.
array
If type is array
, there has four addition rule:
itemType
- The type of every item in this array.rule
- An object that validate the items of the array. Only work withitemType
.max
- The maximun length of the array.min
- The minimun lenght of the array.
abbr
'int'
=>{type: 'int', required: true}
'integer'
=>{type: 'integer', required: true}
'number'
=>{type: 'number', required: true}
'date'
=>{type: 'date', required: true}
'dateTime'
=>{type: 'dateTime', required: true}
'id'
=>{type: 'id', required: true}
'boolean'
=>{type: 'boolean', required: true}
'bool'
=>{type: 'bool', required: true}
'string'
=>{type: 'string', required: true, allowEmpty: false}
'email'
=>{type: 'email', required: true, allowEmpty: false, format: EMAIL_RE}
'password'
=>{type: 'password', required: true, allowEmpty: false, format: PASSWORD_RE, min: 6}
'object'
=>{type: 'object', required: true}
'array'
=>{type: 'array', required: true}
[1, 2]
=>{type: 'enum', values: [1, 2]}
/\d+/
=>{type: 'string', required: true, allowEmpty: false, format: /\d+/}
errors
examples
code: missing_field
code: 'missing_field' field: 'name' message: 'required'
code: invalid
code: 'invalid' field: 'age' message: 'should be an integer'