validex
The fastest and simple validator.
Install
npm install --save validex
use it with react react-validex
Usage
import validex from 'validex'
const validator = validex(data: Object, options: Object)
if(validator.validate()){
}
Options
Validate | Description |
---|---|
required | value must be required. (boolean)
|
type |
string,number,array,object,bool check the value type. (string)
|
min | check the string's minimum length. (integer)
|
max | check the string's maximum length. (integer)
|
value must be an email. (boolean)
|
|
url | value must be an url. (boolean)
|
equal | value must be equal. (string)
|
notEqualWith | check the value equal with another field. (string) another field name
|
lowercase | all the characters must be lowercase. (boolean)
|
uppercase | all the characters must be uppercase. (boolean)
|
capitalize | required the first characters uppercase. (boolean)
|
hex | check the value is hex or not. (boolean)
|
maxNumberRange | check the maximum number range. (integer)
|
minNumberRange | check the minimum number range. (integer)
|
maxWords | check the maximum words length. (integer)
|
minWords | check the minimum words length. (integer)
|
notAllowedChars | check the value contained the some characters or not. (string) example: "abcd.#@"
|
notAllowedCharacters |
a-zA-Z characters are not allowed. (boolean)
|
notAlloweNumber |
0-9 numbers are not allowed. (boolean)
|
notAllowedSpecialChars |
!@#$%^&*()_+\-=\[\]{};':"\|,.<>\/ these characters are not allowed, (boolean)
|
notAllowedWords | check the value contained the some words or not. (string) example: "Hello World, Propgrammer, any"
|
compare | validate the value by your self. (function)
|
regex | compare with regular expression. (Regex)
|
strongPassword | 8 or more characters with a mix of letters, numbers & symbols. (boolean)
|
mediumPassword | 6 or more characters with a mix of letters, numbers & symbols. (boolean)
|
oneOf | check the value is included. (array)
|
oneOfType | check the value multiple types. (array)
|
shape | check an object field with multiple properties. (object)
|
excat | check an object field with multiple properties. (object)
|
date | check the value is date or new Date Object. (boolean)
|
nameAlias | just replace the field name. (string)
|
Example
import validex from 'validex'
const data = {
user_name: 'Jhon Doe',
user_email: 'yourname@example.com',
user_age: 20
}
const schema = {
user_name: {
nameAlias: "User Name",
required: true,
type: 'string',
capitalize: true,
notAllowedSpecialChars: true
},
user_email: {
nameAlias: "Email",
email: true,
lowercase: true
},
user_age: {
nameAlias: "Age",
type: 'number',
minNumberRange: 18,
maxNumberRange: 30
}
}
const validator = validex(data, schema)
const isValidate = validator.validate()
if(isValidate){
// .....
}
// Or You can the hasError function
if(!validator.hasError()){
// .....
}
Schema format
In the schema property you can pass single option or you can pass an array. the array contained two indexes
-
- Property type
-
- Error message
Example
const schema = {
user_name: {
required: [true, new Error("$field must be required")], // or you can pass the arra
type: ['string', new Error("$field must be type of string")],
min: [10, new Error("$field minumum characters of $compare")], // $compare will be replaced with 10
max: 20,
notAllowedSpecialChars: true,
}
}
Validator Methods
Name | Description |
---|---|
set |
Set the data and schema individually. set(fieldName, value, shema) Schema will be an Object |
hasError |
check the error is exists or not @return boolean . you can also check the field error with this hasError('user_name')
|
getError |
get all the errors with an object . If you pass the field name then you can get just the field error message |
removeError |
if you want you can remove the field error. removeError('user_name', 'min') it will remove just user_name min type error |
validate |
validating the data. |
Validator Callback
It will call when validate and removeError function call
validator.callback = (type, validator) => {
if(type === 'removeError'){
}
}
Compare
Custom validation with compare. @return type boolean
.
{
compare: (value, options) => {
if(typeof value !== 'string'){
return new Error("$field must be string")
}
}
}
Individually Import
import {
isType,
isEmail,
isEqual,
isUrl,
isHex,
isUpperCase,
isLowerCase,
isCapitalize,
minWords,
maxWords,
minNumberRange,
maxNumberRange,
notAllowedChars,
notAllowedCharacters,
notAllowedSpecialChars,
notAllowedWords,
notAllowedNumber,
regex,
strongPassword,
mediumPassword,
oneOf,
oneOfType,
exact,
shape
} from 'validex'
// every function has two arguments
// first is value second is compare value
isType(value, 'numbe|object|array|string|bool')
isEmail(value)
isEqual(value, compareValue)
isUrl(value)
isUpperCase(value)
isLowerCase(value)
isCapitalize(value)
isHex(value)
minWords(value, length)
maxWords(value, length)
minNumberRange(value, length)
maxNumberRange(value, length)
notAllowedChars(value, characters)
notAllowedCharacters(value)
notAllowedNumber(value)
notAllowedSpecialChars(value)
notAllowedWords(value, 'Hello World, Programmer')
regex(value, expression),
strongPassword(value),
mediumPassword(value),
oneOf(value, ['public', 'private']),
oneOfType(value, ['string', 'number']),
shape({
name: 'any',
email: 'any@example.com'
}, {
name: {
/// validex props
}
}),
exact({
name: 'any',
email: 'any@example.com'
}, {
name: {
/// validex props
}
}),
Some utilities functions
import {isObject, isArray, isNumber, isInteger, isString, isBool} from 'validex'