代码拉取完成,页面将自动刷新
同步操作将从 porco/psv 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
(自2.1.7版本之后,数组的定义改变,支持数组嵌套)
psv 是一款轻量级 js 数据格式验证工具,相比于其他功能齐备的验证工具,psv 的优势在于体积非常小(之所以要写它,就是因为对其他 validate 框架不满意,我只是想要一个格式化验证工具,却给我一个 1M 的项目),最开始的核心代码只有 130 行。
npm install psv --save
yarn add psv
首先你需要定义出自己的 schema,比如:
var schema = {
str: {
type: String, // string 类型
required: true, // 是否必填,默认为 false
max: 3, // 最大长度
min: 2, // 最小长度
enum: ['12', '13', '14'], // 枚举
regex: '^[8-9]*$', // 正则
// 正则(兼容老版本,不推荐使用,优先级低,当它与 regex 同时出现时会被忽略)
pattern: '^[5-9]*$',
error: { // 自定义错误提示
type: '类型错误',
required: '必填错误',
max: '不能超过最大长度',
min: '不能低于最小长度',
enum: 'enum 必须正确',
regex: '正则验证错误',
pattern: '正则验证错误',
}
},
num: {
type: Number,
required: true,
max: 3, // 最大长度
min: 1, // 最小长度
enum: [1, 2, 3], // 枚举
error: { // 自定义错误提示
type: '类型错误',
required: '必填错误',
max: '不能超过最大值',
min: '不能低于最小值',
enum: 'enum 必须正确',
},
},
boo: {
type: Boolean,
required: true,
error: { // 自定义错误提示
type: '类型错误',
required: '必填错误',
},
},
arr: {
type: Array,
required: true,
max: 3, // 最大长度
min: 2, // 最大长度
error: { // 自定义错误提示
type: '类型错误',
required: '必填错误',
max: '不能超过最大长度',
min: '不能低于最小长度',
},
},
obj: {
type: Object,
required: true,
error: { // 自定义错误提示
type: '类型错误',
required: '必填错误',
},
}
};
schema 是预先定义的数据格式,接下来将会拿 data 与 schema 进行比对, 对于一个 schema 来说只有 type 字段是必填的,其他都可以缺省。
var data = {
str: '12',
num: 2,
boo: true,
array: [1, 2],
obj: {},
}
接着我们导入并创建 Psv 对象进行验证
import Psv from 'psv';
function testPsv(schema, data) {
const psv = new Psv(schema, data);
const validate = psv.validate();
if (!validate) {
psv.printErrors();
}
}
数据类型
函数
const schema = {
key1: {
type: String,
default: '123',
}
};
const data = {};
const psv = new Psv(schema, data);
const res = psv.validate();
// data.key1 === '123'
const schema = {
key1: {
type: String,
trim: true,
}
};
const data = {
key1: ' 123'
};
const psv = new Psv(schema, data);
const res = psv.validate();
// data.key1 === '123'
同样,psv 支持嵌套定义
const schema2 = {
str2: {
type: String,
required: true
}
}
const schema = {
str1: {
type: schema2,
required: true
},
};
(如果对使用有疑问,可以参考 test 目录下代码)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。