New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

Validator

Package Overview
Dependencies
Maintainers
2
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

Validator

A JavaScript validation package, based on Laravel validation.

  • 1.1.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
2
Weekly downloads
 
Created
Source

Validator

npm Travis build Coverage Status FOSSA Status

A client-side JavaScript validation package, based on Laravel 5.2 validation.

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
    
    const Validator = require('Validator');
    

Usage

  • 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' });
    

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

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 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']

Keywords

FAQs

Package last updated on 01 Aug 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc