validex
v1.1.6
Published
The fastest and simple validator
Downloads
25
Maintainers
Readme
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)
|
| email | 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: '[email protected]',
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: '[email protected]'
}, {
name: {
/// validex props
}
}),
exact({
name: 'any',
email: '[email protected]'
}, {
name: {
/// validex props
}
}),
Some utilities functions
import {isObject, isArray, isNumber, isInteger, isString, isBool} from 'validex'