Laravel inspired, dependency-free, JavaScript validation library.
npm install --save fv-validation
import Validation from "fv-validation";
// Add a validation rule
Validation.addRule('in', (inputs, input, name, values, message) => ({
passed: values.indexOf(input) > -1,
error: message || `The ${name} field must contain one of these values ${values.join(',')}`
}));
const input = {
name: 'Finer Vision',
email: '[email protected]'
};
const rules = {
name: 'required|max:255|in:1,2,3',
email: 'required|email|max:255'
};
const messages = {
name: {
required: 'Please enter your name 👆',
},
};
const validation = new Validation;
validation.validate(input, rules, messages);
// All errors for all fields
console.log(validation.getErrors());
// All errors for single field
console.log(validation.getErrors('email'));
Value length must be greater than zero.
Usage: 'required'
Value length must be equal to or greater than the given number.
Usage: 'min:5'
Value length must be equal to or less than the given number.
Usage: 'max:5'
Value must be an email.
Usage: 'email'
Value must match the given regex.
Usage: 'pattern:/d+/'
Value must be equal to the given values.
Usage: 'in:1,2,3'
Value must be a valid URL.
Usage: 'url'
Values must me a valid UK mobile number.
Usage: 'uk_mobile'
Values must me a valid US mobile number.
Usage: 'us_mobile'
Values must me a valid UK postcode.
Usage: 'uk_postcode'
Values must me a valid US postcode.
Usage: 'us_postcode'
Value must be checked
Usage: 'checked'
Value words length must be equal to or greater than the given number.
Usage: 'words_min:5'
Value words length must be equal to or less than the given number.
Usage: 'words_max:5'
File size must be equal to or greater than the given number in MB.
Usage: 'file_min:5'
File size must be equal to or less than the given number in MB.
Usage: 'file_max:5'
File size must be a number.
Usage: 'number'
Value matches given field value
Usage: 'matches:field'