Skip to content

xxllexx/functional-validators

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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@domain.com');
	//output: true
	emailValidator('emaildomaincom');
	//output: 'invalid email'
  1. Simple Validator with the custom message
	var emailValidator = V.message(V.email(), 'something wrong');

	emailValidator('email@domain.com');
	//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@domain.com');
	//output: true
 	groupANDValidator('email@domainand.com');
	//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@domain.com');
    //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@domain.com');
    //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@domain.com');
    //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@domain.com');
    //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);

About

Build your validation expression

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published