Simple JavaScript validation module
npm install correctcorrect
=======
Simple JavaScript validation module
```
npm install correct
`js
var correct = require('correct')
var fn = correct.string.min(1).max(12)
fn('abc') === true
fn('') === false
`
At any time, if you want to understand why you have a failing validation, you can use
`js
var fn = correct.string.min(1).max(12)
fn.validate('')
// will return an object with {valid: false, errors: [...]} and the array of validations that did not pass
fn.validate('abc') //will return {valid: true}
`Types
For now there are only 3 base validation types available
* string - correct.string
* number - correct.number
* int - correct.int
Example:
`js
var isInt = correct.int
isInt('5') == false
isInt(5.1) == false
isInt(5) == true
`
You can chain validation functions for all types (detailed below).
`js
var intMax10 = correct.int.max(10)
intMax10(4) == true
intMax10(40) == false
`
NOTE: types are specified with simple dot access, while all other chained validations should be chained as function calls:
`js
var validate = correct.string.max(10).not('hello word').required()
validate('my string') == true
`
`js
var stringMin5 = correct.string.min(5)
stringMin5('abc') == false
stringMin5('abcde') == true
`
Available string tests:
* min(n: Number) - validates the value to have at least n characters in length
* max(n: Number) - validates the value to have at most n characters in length
* re(r: RegExp) - validates the value against the given regular expression
* email() - validates the value to be a valid email address (npm module isemail is used)
* fn(f: Function) - validates the value if the specified function returns truthy
* not(v: String) - validates the value if it is not strict equal to v
* numeric() - validates the value if it is a numeric string: eg - '1.34'
* required() - validates the value if it is different from empty string
Validates numbers.
`js
var between10And100 = correct.number.min(10).max(100)
between10And100(40) == true
between10And100(4) == false
var even = correct.number.fn(function(v){
return v % 2 == 0
})
even(2) == true
var x = 67
even(x) == false
var isNumber = correct.number
isNumber(4.5) == true
isNumber('4.5') == false
`
Available number tests:
* min(n: Number) - validates the value if it is >= n
* max(n: Number) - validates the value if it is <= n
* fn(f: Function) - validates the value if the specified function returns truthy
* not(v: String) - validates the value if it is not strict equal to v
Inherits all the number tests, and adds some more
* odd(n: Number) - validates the value if it is odd
* even(n: Number) - validates the value if it is even
``
make
```
MIT