is.valid

validation library that is heavily inspired from the old famous codeigniter validation library

is.valid

Validation library for node.js inspired from the old famous codeigniter validation library.

Install from npm

npm install is.valid

Instantiate a new is.valid object

var IsValid = require('is.valid');
 
/** construct a new is.valid object passing the data array to validate
  * date array should contain a set of objects formatted as following
  * {fieldName: value}
 */
var data = {
    name: 'foo bar',
    email: 'foo@bar.com'
}
var isValid = new IsValid(data);

Add validation rules

/**
  * to add validation rules use addRule function
  * addRule accepts 3 arguments
  * field Name as in data object
  * friendly Name for error messages
  * rules separated by |
  * rule is specified by a name and optionaly options
  * like for minLength you should also submit what is the minimum length
  * using the brackets way [10]
 **/
isValid.addRule('name', 'Name', 'required|minLength[10]');

Run validation rules

/**
  * run function go through all validation rules you specified for all fields
  * it accepts a callback function
  * where err is an array contains all error messages formatted like
  * {fieldName: errorMessage }
  * or null if no errors have been found
  * and data is the data object
 **/
isValid.run(function(errdata){
 
});

required: validates that a value exists

minLength[l]: validates that a value length is at minimum equal to l

maxLength[l]: validates that a value length is at maximum equal to l

exactLength[l]: validates that a value length is exactly l

greaterThan[l]: validate that a value is greater than l

lessThan[l]: validates that a value is less than l

alpha: validates that a value contains only alphabet letters [A-Za-z]

alphaNumeric: validates that a value contains only alphabet letters or numbers [A-Za-z0-9]

alphaNumericDash: validates that a value contains only alphabet letters, numbers or dash [A-Za-z0-9-]

numeric: validates that a value is numeric [0-9]

integer: validates that a value is an integer

decimal: validates that a value is a decimal number

natural: validates that a value is a natural number >= 0

naturalNoZero: validates that a value is a natural number and greater than zero

email: validates that a value looks like an email

regex[s]: validates that a value matches the given regular expressions s

matches[f]: validates that a value matches a value of another field f

list: validates that a value is a list

minListLength[l]: validates that a list has a minimum length l

maxListLength[l]: validates that a list doesn't exceed a maximum length l

date: validates that a value is an actual date

beforeDate[l]: validates that a date is earlier than another date l

afterDate[l]: validates that a date is later than another date l

boolean: validates that a value is either true or false

sanitize: sanitize a value against any possible xss attacks