Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/repocrypts/validator
Client-side javascript validator library ports from Laravel 5.2
https://github.com/repocrypts/validator
javascript laravel validation validator
Last synced: 2 months ago
JSON representation
Client-side javascript validator library ports from Laravel 5.2
- Host: GitHub
- URL: https://github.com/repocrypts/validator
- Owner: repocrypts
- License: mit
- Created: 2016-06-26T03:14:58.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-03-10T20:50:17.000Z (10 months ago)
- Last Synced: 2024-11-15T06:07:48.598Z (2 months ago)
- Topics: javascript, laravel, validation, validator
- Language: JavaScript
- Homepage:
- Size: 977 KB
- Stars: 46
- Watchers: 4
- Forks: 22
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Validator
[![npm](https://img.shields.io/npm/v/Validator.svg)](https://www.npmjs.com/package/Validator)
[![Travis build](https://img.shields.io/travis/jfstn/Validator.svg)](https://travis-ci.org/jfstn/Validator)
[![Coverage Status](https://coveralls.io/repos/github/jfstn/Validator/badge.svg?branch=master)](https://coveralls.io/github/jfstn/Validator?branch=master)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjfstn%2FValidator.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjfstn%2FValidator?ref=badge_shield)A client-side JavaScript validation package, based on Laravel 5.2 validation.
## Installation
1. Included as global ``, 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,```html
<head>
<script src="public/js/Validator.js">
```2. Using NPM
```bash
npm install Validator --save
```
```javascript
const Validator = require('Validator');
```## Usage
- Basic usage
```javascript
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
```javascript
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
```javascript
const v = Validator.make(data, rules, messages, { email: 'Email Address' });
```## Supported Validation Rules
See validation rule usage in [Laravel Documentation](https://laravel.com/docs/5.2/validation#available-validation-rules)
- accepted
- after (date)
- alpha
- alpha_num
- alpha_dash
- array
- before (date)
- between
- boolean
- confirmed
- date
- different
- digits
- digits_between
- 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
```javascript
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 failureThe 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']`