Note: Not maintained
valid8 is a Javascript data validator for use with user input from web forms, APIs, etc.
npm install valid8
npm test
var Valid8 = require('valid8');
var valid8 = new Valid8('form', {
name: 'string',
username: {
type: 'string',
max: 20,
required: true
},
email: 'emailString',
age: {
type: 'int',
min: 18,
required: true
},
gpa: {
type: 'decimal',
},
gender: {
type: 'enum',
options: ['male', 'female']
},
country: {
type: 'string',
required: true
}
});
var result = valid8.areFieldsValid({
name: 'Aiham',
username: 'averylonglonglongusername',
email: 'invalid email',
age: 17,
gpa: '1.23',
gender: 'foobar'
});
/* result contains:
{
username: 'long',
email: 'format',
age: 'small',
gender: 'option',
country: 'missing'
}
*/
new Valid8([testType], [fields])
testType
- eitherstrict
orform
(see below)fields
- An object containing the field definitions
-
isFieldValid(name, value)
name
- Name of the field to be validatedvalue
- Value to be validated- Returns
true
if the field is valid - Returns an error response if invalid (see below)
-
areFieldsValid(values, [fieldWhiteList])
values
- An object containing the values for each field to be validatedfieldWhiteList
- An array of field names to be validated. For when you only want to validate a subset of the fields- Returns
true
if all values are valid - Returns an object containing the name of each invalid field and the corresponding error response (see below)
Valid8.testTypes.strict
- Checks value and data type. (Default)Valid8.testTypes.form
- Checks value even if data is provided in strings. Good for web forms
Valid8.fieldTypes.string
Valid8.fieldTypes.emailString
Valid8.fieldTypes.dateString
Valid8.fieldTypes.int
Valid8.fieldTypes.decimal
Valid8.fieldTypes.enum
Valid8.errors.missing
Valid8.errors.long
Valid8.errors.short
Valid8.errors.large
Valid8.errors.small
Valid8.errors.format
Valid8.errors.dataType
Valid8.errors.option