GithubHelp home page GithubHelp logo

ferrielmelarpis / validator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from repocrypts/validator

0.0 2.0 0.0 234 KB

JavaScript validator library ports from Laravel

JavaScript 99.84% HTML 0.16%
validation validator javascript nodejs laravel

validator's Introduction

Javascript Validator library

Travis build npm

Client-side javascript validator library. Ports from Laravel 5.2

Installation

  1. 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="public/js/Validator.js"></script>
        <!-- or using NPMCDN -->
        <script src="https://unpkg.com/Validator"></script>
    </head>
  2. Using NPM

    npm install Validator --save
    var Validator = require('Validator')

Usage

  • Basic usage
    var data = {
        name: 'John Doe',
        company: 'Example Co.',
        birthday: '1985-04-16'
    }
    var rules = {
        name: 'required',
        // for multiple rules
        birthday: 'required|date', // can be a piped string
        company: ['required', 'string'] // can be an array of strings
    }
    
    var v = Validator.make(data, rules)

    if (v.fails()) {
        var 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'
    }
    
    var v = Validator.make(data, rules, messages)
    
    if (v.passes()) {
        //...
    }
  • Custom Name
    var v = Validator.make(data, rules, messages, { 'email': 'Email Address' })

Supported Validation Rules

See validation rule usage in Laravel Documentation

  • accepted
  • after (date)
  • alpha
  • alpha_num
  • alpha_dash
  • array
  • before (date)
  • between
  • boolean
  • confirmed
  • date
  • different
  • digits
  • digits_between
  • email
  • filled
  • in
  • integer
  • ip
  • json
  • max
  • min
  • not_in
  • numeric
  • present
  • regex
  • required
  • required_if
  • required_unless
  • required_with
  • required_with_all
  • required_without
  • required_without_all
  • same
  • size
  • string
  • url

Extending with Custom Validation Rules

The validator can be extended with custom rules

    var rules = {
        id: 'required|mongoid'
    }

    function validateMongoId(name, value, params) {
        let hexadecimal = /^[0-9A-F]+$/i
        return value && hexadecimal.test(value) && value.length === 24
    }
    
    var 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 rule
  • callback: called when the rule is checked
  • validationMessage: error message text on validation failure

The validation callback receives three parameters:

  1. name: the field name being validated
  2. value: the given value in the data
  3. params: 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']

validator's People

Contributors

ratiw avatar sjones6 avatar npmcdn-to-unpkg-bot avatar

Watchers

James Cloos avatar Ferriel Melarpis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.