A client-side JavaScript validation package, based on Laravel 5.2 validation.
Included as global <script>
, copy the Validator.js
file inside dist
directory to your project directory
and reference it in the script tag. Or, you can use NPMCDN to reference it like so,
<head>
<script src="https://github.com/repocrypts/Validator/raw/master/public/js/Validator.js"></script>
<!-- or using NPMCDN -->
<script src="https://unpkg.com/Validator"></script>
</head>
Using NPM
npm install Validator --save
const Validator = require('Validator');
Basic usage
const data = {
name: 'John Doe',
company: 'Example Co.',
birthday: '1985-04-16'
};
const rules = {
name: 'required',
// for multiple rules
birthday: 'required|date', // can be a piped string
company: ['required', 'string'] // can be an array of strings
};
const v = Validator.make(data, rules);
if (v.fails()) {
const errors = v.getErrors();
console.log(errors);
}
getErrors()
will return an object containing error field as a key and array of error messages for that field.
Custom Error Messages
const messages = {
// custom message for based rules
required: 'You forgot the :attr field',
email: ':attr is not valid',
// custom message for specific rule of attribute
'receiver.email': 'The receiver email address is not valid'
};
const v = Validator.make(data, rules, messages);
if (v.passes()) {
//...
}
Custom Name
const v = Validator.make(data, rules, messages, { email: 'Email Address' });
See validation rule usage in Laravel Documentation
The validator can be extended with custom rules
const rules = {
id: 'required|mongoid'
};
function validateMongoId(name, value, params) {
let hexadecimal = /^[0-9A-F]+$/i;
return value && hexadecimal.test(value) && value.length === 24;
}
const v = Validator.make(data, rules);
v.extend('mongoid', validateMongoId, ':attr is not a valid mongo id');
if (v.passes()) {
//...
}
validator.extend
takes three required parameters:
name
: the name of the custom rulecallback
: called when the rule is checkedvalidationMessage
: error message text on validation failureThe validation callback receives three parameters:
name
: the field name being validatedvalue
: the given value in the dataparams
: Any parameters, passed after the colon in the rule definition.Params defined ike so: rulename:min=10,max=15
would be passed in as an array: ['min=10', 'max=15']