1.0.1 • Published 8 years ago
mileyy-validate v1.0.1
mileyy-validate
A simple form validator for run with any javascript runtime, node/JSCore/browser, etc.
Install
# install npm package
npm i --save mileyy-validate
# install typings
typings install npm:mileyy-validate/.d.ts/mileyy-validate.d.ts
Usage
- general
v.validate(validateors, data)
will return true if all validators passed, else return a error map
import * as v from 'mileyy-validate'
v.validate({
name: [v.required('name')],
password: [v.required('password'), v.length('password', 8)],
passwordRepeat: [v.repeat('password')],
}, {
name: 'name',
password: ['1234567'],
passwordRepeat: ['12345678'],
})
// => {name: [], password: ['password should have 8 chars at lest''], passwordRepeat: ['password repeat error']}
v.validate({name: [v.required('name')]}, {name: 'a'}) // => true
builtin validators
- required(alias): must be
true
value - pattern(alias, patternStringOrRexExp, options?): validate pattern
- url(alias): url
- email(alias): email
- length(alias, min?, max?): length
- repeat(alias, field): equals to another field
- enumerable(alias, enumArr): in enumArr
- required(alias): must be
register custom validator
import {register, notEmpty, exec, use} from 'mileyy-validate'
const phone = register('phone', (value) => !notEmpty(value) || /^1[34578]\d{9}$/.test(value), 'invalid phone number')
// use returned use function
exec(phone('phone number'), '1456734283')
// use basic
exec(use('phone', 'phone number'), 161234123)
- i18n
import {i18n, setLang} from 'mileyy-validate'
// set languange
setLang('zh-CN')
// invoke builtin languange package
require('mileyy-validate/lib/i18n/zh-CN')
// extend error message
i18n('zh-CN', {phone: '无效的手机号'})