1.0.4 • Published 5 years ago

ferds-validator v1.0.4

Weekly downloads
11
License
MIT
Repository
github
Last release
5 years ago

Ferds Validator

Ferds Validator is a simple validator that is intended for processing data validation in a concise manner. Ferds Validator has several advantages over other packages, such as:

  • Use only one variable to perform various validations
  • Validation looks more familiar to those of you who are accustomed to using the PHP programming language with the CodeIgniter and Laravel framework

Features

Now, let’s describe the features:

  • Check for required data.
  • Simple basic validation rules
  • Verify that the data is of the correct type, and meets the correct criteria. For example, if a username is submitted it must be validated to contain only permitted characters. It must be of a minimum length, and not exceed a maximum length. Etc.

Installation

$ npm install ferds-validator

Usages

Basic validation usage

Examples of simple use :

var validator = require( 'ferds-validator' );
var rules = [
	{
		"name": "Alpha Only", // field description
		"value": "ABC", // value that will be validated
		"rules": "alpha" // validate alphabet characters only
	},
	{
		"name": "Required Alpha Only",
		"value": "",
		"rules": "required|alpha"
	},
	{ // Return false, because the value must be greater or equal to 30
		"name": "Age",
		"value": 25,
		"rules": "required|numeric|greater_than_equal_to(30)"
	},
	{ // Return False
		"name": "Exact Length",
		"value": "ABCDE92",
		"rules": "required|exact_length(5)|alpha"
	},
	{ // Return False
		"name": "Minimum Length",
		"value": "123123",
		"rules": "required|min_length(2)|numeric"
	},
	{ // Return True
		"name": "Maximum Length",
		"value": "123123",
		"rules": "required|max_length(10)|numeric"
	},
	{ // Return True
		"name": "Maximum Length Or Equal To",
		"value": "AB123",
		"rules": "required|max_length_equal_to(5)|alpha_numeric"
	},
	{ // Return True
		"name": "Birth Date",
		"value": "1993-11-267",
		"rules": "required|date(YYYY-MM-DD)"
	},
}
var run_validator = validator.run( rules ); // Set to variable
console.log( run_validator ); // Raw output

if ( run_validator.status == false ) {
	// your code...
}
else {
	// your code...
}

Raw output :

{
	"status": false,
	"message": "Unfortunately, some error has occured.",
	"error_lists": [
		"The Required Alpha Only field is required. ",
		"The Age field must contain a number greater than or equal to 30. ",
		"The Exact Length field must be exactly 5 characters in length. ",
		"The Exact Length field may only contain alphabetical characters. ",
		"The Birth Date field must contain a valid date with format YYYY-MM-DD. "
	]
}

Simple usage with Express

Examples of simple use with express :

const express = require( 'express' );
const body_parser = require( 'body-parser' );
const app = express();
const validator = require( 'ferds-validator' );

app.use( body_parser.urlencoded( { extended: false } ) );
app.use( body_parser.json() );
app.listen( 5000, () => {
	console.log( 'Tester Package running on port 5000' );
} );
app.post( '/test', ( req, res ) => {
	var rules = [
		{
			"name": "IP Address",
			"value": req.body.ip_address,
			"rules": "ip_address"
		},
		{
			"name": "Regex Match",
			"value": req.body.regex_match,
			"rules": "required|regex_match(/^[a-zA-Z0-9]+$/)"
		},
		{
			"name": "Website URL",
			"value": req.body.website_url,
			"rules": "required|url"
		},
		{
			"name": "Longitude",
			"value": req.body.longitude,
			"rules": "required|longitude"
		},
		{
			"name": "Latitude 1",
			"value": req.body.latitude,
			"rules": "required|latitude"
		},
	];
	var run_validator = validator.run( rules ); // Set to variable

	if ( run_validator.status == false ) {
		// Sample
		res.json( {
			status: false,
			message: "Please check your input.",
			error_lists: run_validator.error_lists // Show error validation lists
		} );
	}
	else {
		// your code if validation is true...
	}
} );

Rule Reference

The following is a list of all the native rules that are available to use:

RuleParameterDescriptionExamples
alphaNoReturns FALSE if the form element contains anything other than alphabetical characters.
alpha_numericNoReturns FALSE if the form element contains anything other than alpha-numeric characters.
alpha_numeric_spacesNoReturns FALSE if the form element contains anything other than alpha-numeric characters or spaces. Should be used after trim to avoid spaces at the beginning or end.
alpha_spacesNoReturns FALSE if the form element contains anything other than alphabetical characters or spaces.
dateYesReturns FALSE if the form element does not contain a valid date. The allowed format is DD-MM-YYYY, YYYY-MM-DD, DD/MM/YYYY, YYYY/MM/DD, DD.MM.YYYY, or YYYY.MM.DD,date(YYYY-MM-DD)
emailNoReturns FALSE if the form element does not contain a valid email address.
greater_thanYesReturns FALSE if the form element is less than or equal to the parameter value or not numeric.greater_than(10)
greater_than_equal_toYesReturns FALSE if the form element is less than the parameter value, or not numeric.greater_than_equal_to(243)
latitudeNoReturns FALSE if the form element is values doesn't between -90 to 90 degrees.
longitudeNoReturns FALSE if the form element is values doesn't between -180 to 180 degrees.
less_thanYesReturns FALSE if the form element is greater than or equal to the parameter value or not numeric.less_than(10)
less_than_equal_toYesReturns FALSE if the form element is greater than the parameter value, or not numeric.less_than_equal_to(243)
max_lengthYesReturns FALSE if the form element is longer than the parameter value.max_length(2)
max_length_equal_toYesReturns FALSE if the form element is longer than or not equal to the parameter value.max_length_equal_to(2)
min_lengthYesReturns FALSE if the form element is shorter than the parameter value.min_length(5)
min_length_equalYesReturns FALSE if the form element is shorter than or not equal to the parameter value.min_length_equal_to(7)
numericNoReturns FALSE if the form element contains anything other than numeric characters.
ip_addressNoReturns FALSE if the supplied IP address is not valid. Accepts an optional parameter of ‘ipv4’ or ‘ipv6’ to specify an IP format.
regex_matchYesReturns FALSE if the form element does not match the regular expression.regex_match(/^a-zA-Z0-9+$/)
requiredNoReturns FALSE if the form element is empty.
urlNoReturns FALSE if the form element does not contain a valid URL.

Author

Ferdinand <ferdshinodas@gmail.com>