@patterninc/laravel_js_validator
TypeScript icon, indicating that this package has built-in type declarations

1.0.11 • Public • Published

Laravel style validators in JS

This package implements laravel styled validation rules in javascript. It is a standalone package and does not require any other package or framework to work. We can use this with ES6 and commonjs type of modules. Refer usage section for more details on the usage.

Installation

Add follwing to your package.json

"@patterninc/laravel_js_validator": "^1.0.1"

Usage

  • commonjs
const laravel = require('@patterninc/laravel_js_validator')
laravel.Validator.validate(data, rules)
  • es6
import { Validator } from '@patterninc/laravel_js_validator'
  • Example

import { Validator } from '@patterninc/laravel_js_validator'

{
    "data": {
      "a1": "test",
      "a2": null,
      "a3": "",
      "a4": [],
      "a5": 10,
      "a6": ["a", "b", "c"],
      "a7": [1,2,3,4,5,6,7,8,9,10],
      "a8": "*&^R$",
      "a9": "test123",
      "a10": "abc12312",
      "a11": "abc@abc.com",
      "a12": "abc",
      "a13": "regex123"
    },
    "rules": {
      "a1": "required",
      "a2": "required",
      "a3": "required",
      "a4": "required",
      "a5": "required|numeric|max:10|min:4",
      "a6": "required|array|in:a,b,c",
      "a7": "required|array|between:1,10",
      "a8": "required|alpha",
      "a9": "required|alpha_num",
      "a10": "required|alpha",
      "a11": "required|email",
      "a12": "required|email",
      "a13": "required|regex:/^regex[0-9]+$/"
    }
}

const result = Validator.validate(data, rules)
console.log(result)
  • Result

{
    "success": false,
    "errors": {
        "a2": [
            "The a2 field is required."
        ],
        "a3": [
            "The a3 field is required."
        ],
        "a4": [
            "The a4 field is required."
        ],
        "a8": [
            "The a8 may only contain letters."
        ],
        "a10": [
            "The a10 may only contain letters."
        ],
        "a12": [
            "The a12 must be a valid email address."
        ]
    }
}

Rules Implemented

{
  after: 'The :attr must be a date after :date.',
  alpha: 'The :attr may only contain letters.',
  alpha_dash: 'The :attr may only contain letters, numbers, and dashes.',
  alpha_num: 'The :attr may only contain letters and numbers.',
  array: 'The :attr must be an array.',
  before: 'The :attr must be a date before :date.',
  between: {
    numeric: 'The :attr must be between :min and :max.',
    string: 'The :attr must be between :min and :max characters.',
    array: 'The :attr must have between :min and :max items.',
  },
  boolean: 'The :attr field must be true or false.',
  date: 'The :attr is not a valid date.',
  date_format: 'The :attr does not match the format :format.',
  different: 'The :attr and :other must be different.',
  email: 'The :attr must be a valid email address.',
  in: 'The selected :attr is invalid.',
  integer: 'The :attr must be an integer.',
  max: {
    numeric: 'The :attr may not be greater than :max.',
    string: 'The :attr may not be greater than :max characters.',
    array: 'The :attr may not have more than :max items.',
  },
  min: {
    numeric: 'The :attr must be at least :min.',
    string: 'The :attr must be at least :min characters.',
    array: 'The :attr must have at least :min items.',
  },
  not_in: 'The selected :attr is invalid.',
  numeric: 'The :attr must be a number.',
  regex: 'The :attr format is invalid.',
  required: 'The :attr field is required.',
  same: 'The :attr and :other must match.',
  size: {
    numeric: 'The :attr must be :size.',
    string: 'The :attr must be :size characters.',
    array: 'The :attr must contain :size items.',
  },
  string: 'The :attr must be a string.',
  url: 'The :attr format is invalid.',
}

Readme

Keywords

none

Package Sidebar

Install

npm i @patterninc/laravel_js_validator

Weekly Downloads

209

Version

1.0.11

License

ISC

Unpacked Size

56.4 kB

Total Files

31

Last publish

Collaborators

  • gauravwarale
  • anagha2915
  • paritoshbotre
  • ashitosh-pattern
  • balaji.pattern
  • sachin.walunj
  • erdbom
  • patterninc-npm-builder
  • jasonwells
  • joshmdiaz