psv 是一款轻量级 JS 数据格式验证工具,相比于其他功能齐备的验证工具,psv 的优势在于体积非常小,最开始的核心代码只有 130 行。因此 psv 非常适合做小型项目、原型试错、个人 demo 以及教学。
npm install psv --save
首先你需要定义出自己的 schema,比如我:
var schema = { key1: { type: String, required: true }, key2: { type: String, required: true }, };
这个 schema 的意思是,两个字段(key1,key2),都是必填,string 类型。那么我传入待验证的 data 结构是:
var data = { key1: 'psv', key2: 'psv', }
接着我们导入并创建 Psv 对象进行验证
import Psv from 'psv'; function testPsv(schema, data) { const psv = new Psv(schema, data); const validate = psv.validate(); if (!validate) { psv.printErrors(); } }
上面的代码首先创建 Psv 对象,并通过构造函数传入 schema 和 data。接着调用 validate 函数,该函数返回值为 true or false, 如果为 true 代表 data 符合 schema 定义,为 false 的话,可以通过 psv.printErrors() 或者 psv.getErrors() 来获取错误信息。
目前支持五种数据类型的定义:String, Number, Array, Boolean, Object。
str: { type: String, max: 5, min: 3, pattern: '^[0-9]*$', required: true },
max : 最大长度 (数字)
min : 最小长度 (数字)
pattern : 自定义正则表达式 (正则表达式)
required : 是否必须 (布尔)
num: { type: Number, max: 5, min: 3, required: true },
max : 最大值 (数字)
min : 最小值 (数字)
required : 是否必须 (布尔)
array: { type: [Number], max: 5, min: 3, required: true },
max : 最大长度 (数字)
min : 最小长度 (数字)
required : 是否必须 (布尔)
数组支持对象元素检测(可嵌套,同样,根据我们团队的实际应用场景,我们建议采用扁平化的数据结构设计)
const schema2 = { str: { type: String, required: true }, num: { type: Number, required: true } }; const schema = { key: { type: [schema2], required: true } };
如果你不希望对数组检测,或者说,数组元素类型不确定,可以采用 Array 定义,我们将不会对其进行类型检测
const schema = { array: { type: Array, max: 5, min: 3, required: true } }; const data = { array: [1, '1', true, {}] };
boo: { type: Boolean, required: true },
required : 是否必须 (布尔)
object: { type: Object, required: true },
required : 是否必须 (布尔)
同样,psv 支持嵌套定义
const schema2 = { str2: { type: String, required: true } } const schema = { str1: { type: schema2, required: true }, };
开始加入枚举类型,目前仅限 string, number 两大类型支持。
const schema = { enum: { type: String, enum: ['1', '2', '3'], required: true } }; const data = { enum: '1' };
const schema = { enum: { type: Number, enum: [1, 2, 3], required: true } }; const data = { enum: 3 };
1.下载相关工具: 下载qcma https://codestation.github.io/qcma/ 下载破解自动打包工具(懒人包,能够根据用户AIDKEY自动生成破解包) 新地址链接:https://pan.baidu.com/s/1gjwfsxupsxiCgCWNgC7F8Q 密码:1dco (感谢天鷹葉尋原创,来自多玩PSV区:http://bbs.duowan.com/thread-
众所周知PSV的游戏是不锁区的,也就是说无论你的主机是什么版本,你的游戏是什么版本,只要插进去都能玩。这也为我们广大玩家带来了不少实惠,因为港版和美版游戏通常要比日版便宜不少。但是在购买和使用上还是要注意一些问题。 十二位码: 用于换取索尼PSN商店相应道具的编码。一些游戏的联机通行证或是虚拟道具类的首发特典都是以这个12位码的形式出现的。这个码是严格区分服务器的,也就是说日版游戏内附带的码只能在
---2021.2.7--- 2021年了,手机游戏不香吗? 香。 但是十年前的PS VITA仍旧让我爱不释手。纯粹的游戏体验,优秀的画质,有趣的故事情节,破解版下装上模拟器之后可以玩小霸王,街机,世嘉,GBA,PSP,blar blar blar, 还有彩色触屏,天生自带手柄,纯粹比游戏体验的话那是手机比不来的。手机再怎么牛,没有手柄就是个硬伤,很多游戏是必须要有手柄才有感觉的。你说用外设再去接
读取PSV文件数据: data=r'C:\Users\*******\training.psv' Coursedata=[] Coursedataform=[] dic={} with open(data,'r',newline="") as psvfile: for line in psvfile.readlines(): Coursedata.append(line[0:
我需要为我的输入自动创建每个4个数字的空间。这是我的代码: 在这里,我只能键入数字。我需要以这种格式输入卡号1111 2222 3333 4444。自动创建空间,每个4个数字
7.4、数据验证 7.4.1、编程式数据验证 Spring 2.x提供了编程式验证支持,详见【4.16.2 数据验证】章节,在此我们重写【4.16.2.4.1、编程式验证器】一节示例。 (1、验证器实现 复制cn.javass.chapter4.web.controller.support.validator.UserModelValidator 到cn.javass.chapter7.web.c
问题内容: 我正在使用模块来验证证书,但是我的证书和公共密钥都是 DER 格式。似乎该模块不接受此格式。 有没有一种方法(或模块)使用NodeJS将DER转换为PEM格式?我找不到任何内容,也无法使用命令行通过shell 调用 openssl 。 更新: 这与HTTPS证书无关。它是关于常规X.509证书的。如果您将问题标记为否定,请发表评论以证明其合理性。如果您无能为力,那就不要傻了。 问题答案
编写验证器 验证器是一个可调用的对象,它接受一个值,并在不符合一些规则时抛出ValidationError异常。验证器有助于在不同类型的字段之间重复使用验证逻辑。 例如,这个验证器只允许偶数: from django.core.exceptions import ValidationError def validate_even(value): if value % 2 != 0:
简介 Lumen 提供了数种不同的方法来验证传入应用程序的数据。默认情况下,Lumen 的基控制器类使用名为 ProvidesConvenienceMethods 的 trait,其提供了一种便捷的方法来使用各种强大的验证规则验证传入的 HTTP 请求。 一般来说,Lumen 中的数据验证与 Laravel 中的数据验证并无多大区别,因此你应该查阅 完整的 Laravel 数据验证文档 以熟悉其使
ThinkCMF5的数据库验证按 TP5的验证来处理,不同的是自定义验证器增加了 Validate后缀,所以你在查看 TP5手册时请留意这一点! TP5手册-验证
我想做日期格式验证。它应该是yyyy-mm-dd,为了实现我的要求,我遵循下面的代码,但它不起作用。 我的输入请求应该是2020-13-08或2020-13-08T23:00:00Z,但应该是2020-08-13或2020-08-13T23:00:00Z
7.3、数据格式化 在如Web /客户端项目中,通常需要将数据转换为具有某种格式的字符串进行展示,因此上节我们学习的数据类型转换系统核心作用不是完成这个需求,因此Spring3引入了格式化转换器(Formatter SPI) 和格式化服务API(FormattingConversionService)从而支持这种需求。在Spring中它和PropertyEditor功能类似,可以替代Propert