zvalidate
v2.3.0
Published
A param verify tools.
Readme
ZValidate
参数验证工具.
安装
$ npm install zvalidate --save使用
API
ZValidate Class
constructor([options])- new ClassZValidateinstanceoptions.translate- translate function
validate(rule, value)- validate thevalueconforms 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 afunctionor aRegExp.
Example
var v = require('zvalidate');
var zvalidate = new ZValidate({
translate: function() {
// 方法
}
});
var data = {
name: 'foo',
age: 24,
gender: 'male'
};
var rule = {
name: 'string',
age: 'int',
gender: ['male', 'female', 'unknown']
};
var errors = v.validate(rule, data);例子
规则
common rule
required- ifrequiredis 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,valuemust <=max.min- The minimum of the value,valuemust >=min.
integer
Alias to int.
number
If type is number, there has tow addition rules:
max- The maximum of the value,valuemust <=max.min- The minimum of the value,valuemust >=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- ARegExpto 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,valuemust 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'
}