variable-type高性能变量结构校验库
variable-type
一个非常简单的(仅 1 kb)高性能的用于做变量结构校验的 JavaScript 模块。
1. 安装
npm i --save variable-type
Then import it.
import VT from 'variable-type'; // ES6 var VT = require('variable-type'); // ES5 with npm
2. API & Types
The unique API is check(variable, type)
. And the library contains Types
below:
VT.bool
VT.func
VT.number
VT.string
VT.object
VT.array
VT.any
VT.null
VT.undefined
VT.instanceOf(Class)
VT.in(Array)
VT.arrayOf(Type)
VT.shape(TypeObject)
VT.and(TypeArray)
VT.or(TypeArray)
VT.not(Type)
VT.apply(Function)
You can see all the usage in the test cases file.
If more Types are needed, welcome to send a pull request
, or put an issue to me.
3. 使用示例
Here is some examples. More you can see in test.js file.
Simple usage
VT.check(1992, VT.number); VT.check('hustcc', VT.string); VT.check(Math.min, VT.func); VT.check(true, VT.bool); VT.check({}, VT.object); VT.check([1, 2, 3], VT.array); VT.check(null, VT.null); VT.check(undefined, VT.undefined); VT.check(new Date(), VT.instanceOf(Date)); VT.check('hustcc', VT.in(['hustcc', 'hust', 'cc']));
And / Or / Not
VT.check('hustcc', VT.not(VT.in(['hustcc', 'cc']))); VT.check('hustcc', VT.and([ VT.string VT.in(['hustcc', 1992]), ])); VT.check('hustcc', VT.or([ VT.number, VT.string, ]));
Array
type.
var arr = ['hello', 'world', 25, new Date(1992, 8, 1)]; var types = VT.arrayOf( VT.or([ VT.number, VT.string, VT.instanceOf(Date) ]) ); VT.check(arr, types); // will get true.
Object
type.
var obj = { name: 'hustcc', boy: true, birthday: new Date(1992, 8, 1) }; var types = VT.shape({ name: VT.string, boy: VT.bool, birthday: VT.instanceOf(Date) }); VT.check(obj, types); // will get true.
Complex
example.
// The only API `check`. VT.check({ a: true, b: 1, c: 'str', d: function() {}, e: new Date(), f: '1', g: { h: { i: [ '1', 2, true, { j: function() {} } ] } } }, VT.shape({ a: VT.bool, b: VT.number, c: VT.string, d: VT.func, e: VT.instanceOf(Date), f: VT.in([1, '1']), g: VT.shape({ h: VT.or([ VT.shape({ i: VT.arrayOf( VT.or([ VT.number, VT.string, VT.bool, VT.shape({ j: VT.func }) ]) ) }) ]) }) }); // Then will get true.
4. Test & Perf
npm i npm run test npm run perf
[OPS] variable-type / prop-types = 2.495
协议
ISC@hustcc.
评论
FireEyeAndroid校验库
轻量级简单易用的Android校验库。这是一个简单Android校验库,按配置来验证用户输入的表单信息。只需要几行代码,即可验证用户输入,并且将验证错误反馈给用户。它内置了大量常用的验证类型,足以满足
FireEyeAndroid校验库
0
NextInputsAndroid 校验库
NextInputs 基于FireEye 升级而来,继承了FireEye校验功能,并具有良好的扩展性,你可以根据业务需要创建自定义的校验规则。NextInputs项目地址:https://github
NextInputsAndroid 校验库
0