PSV

JS 数据格式验证工具
授权协议 Apache 2.0
开发语言 JavaScript
所属分类 Web应用开发、 常用JavaScript包
软件类型 开源软件
地区 国产
投 递 者 惠文彬
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Porco Schema Validate (psv)

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() 来获取错误信息。

api

目前支持五种数据类型的定义:String, Number, Array, Boolean, Object

1.String

str: {
    type: String,
    max: 5,
    min: 3,
    pattern: '^[0-9]*$',
    required: true
},

max : 最大长度 (数字)

min : 最小长度 (数字)

pattern : 自定义正则表达式 (正则表达式)

required : 是否必须 (布尔)

2.Number

num: {
    type: Number,
    max: 5,
    min: 3,
    required: true
},

max : 最大值 (数字)

min : 最小值 (数字)

required : 是否必须 (布尔)

3.Array

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, {}]
};

4.Boolean

boo: {
    type: Boolean,
    required: true
},

required : 是否必须 (布尔)

5.Object

object: {
    type: Object,
    required: true
},

required : 是否必须 (布尔)

注意:当 type = Object 时,说明该字段可以是任何 js 基本类型或对象,甚至可以是 一个 函数(慎用)。

同样,psv 支持嵌套定义

const schema2 = {
    str2: {
        type: String,
        required: true
    }
}
const schema = {
    str1: {
        type: schema2,
        required: true
    },
};

升级:

2.1.8

开始加入枚举类型,目前仅限 string, number 两大类型支持。

string :

const schema = {
    enum: {
        type: String,
        enum: ['1', '2', '3'],
        required: true
    }
};
const data = {
    enum: '1'
};

number:

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