• Stars
    star
    103
  • Rank 333,046 (Top 7 %)
  • Language
    JavaScript
  • Created over 9 years ago
  • Updated about 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Build your validation expression

NPM

About

Functional Validators.

First: Build validation expressions.

Second: Validate your data by this expression.

Installation

npm install functional-validators

Importing

nodejs

var V = require('functional-validators')

browser

<script src="v.min.js"></script>

Validators List

  • V.email
  • V.url
  • V.range
  • V.text
  • V.capitalLetter
  • V.number
  • V.word
  • V.required
  • V.phone
  • V.date

Functions

  • V.and
  • V.or
  • V.message

Usage

  1. Simple Validator
	var emailValidator = V.email();

	emailValidator('[email protected]');
	//output: true
	emailValidator('emaildomaincom');
	//output: 'invalid email'
  1. Simple Validator with the custom message
	var emailValidator = V.message(V.email(), 'something wrong');

	emailValidator('[email protected]');
	//output: true
	emailValidator('email@domaincom');
	//output: 'something wrong'
  1. AND Group validators
	var emailValidator = V.email(),
			rangeValidator = V.range(1, 17),
			groupANDValidator = V.and(emailValidator, rangeValidator);

	groupANDValidator('[email protected]');
	//output: true
 	groupANDValidator('[email protected]');
	//output: ["string length should be between 1 and 17 chars"]

  groupANDValidator('emaildomainand.com');
  //output: ["invalid email", "string length should be between 1 and 17 chars"]
  1. OR Group validators
	var emailValidator = V.email(),
    	rangeValidator = V.range(1, 10),
    	groupORValidator = V.or(emailValidator, rangeValidator);

	groupORValidator('[email protected]');
    //output: true

    groupORValidator('0123456789');
    //output: true

    groupORValidator('emaildomainand.com');
    //output: ["invalid email", "string length should be between 1 and 10 chars"]
  1. Complex group validator
	var emailValidator = V.email(),
    	rangeValidator = V.range(5, 10),
        textValidator = V.text(),
    	groupANDValidator = V.and(textValidator, rangeValidator),
        groupORValidator = V.or(groupANDValidator, emailValidator);

	groupORValidator('[email protected]');
    //output: true

    groupORValidator('0123456789');
    //output: true

    groupORValidator('text');
    //output: true

	groupORValidator('123');
    //output: ["should be a text only", "string length should be between 5 and 10 chars", "invalid email"]
  1. Group validators with custom messages
	var emailValidator = V.email(),
    	rangeValidator = V.range(1, 10),
    	groupORValidator = V.message(V.or(emailValidator, rangeValidator), 'something is wrong here!');

	groupORValidator('[email protected]');
    //output: true

    groupORValidator('0123456789');
    //output: true

    groupORValidator('emaildomainand.com');
    //output: "something is wrong here!"
  1. Group validators with custom messages for special validator
	var emailValidator = V.email(),
    	rangeValidator = V.range(1, 10),
    	groupORValidator = V.or(emailValidator, V.message(rangeValidator, 'something is wrong here!'));

	groupORValidator('[email protected]');
    //output: true

    groupORValidator('0123456789');
    //output: true

    groupORValidator('emaildomainand.com');
    //output: ["invalid email", "something is wrong here!"]

How to add Validators

    /**
     * @params validatorName {string}
     * @params validationExpression {function}
     * @params force {boolean} - force rewrite, in case if validator with current name already exists
     */

    V.register = function(validatorName, validationExpression, force){
        ...
    }

Example

    V.register('yourValidatorName', function(val, args..., message){
        return !!validationExpression || massage || 'default error message';
    }, false);


    var validator = V.yourValidatorName(args...);

    validator(string);