使用 SFN-Validator 校验前台提交的表单
发布于 7 年前 作者 Hyurl 2256 次浏览 来自 分享

Simple Friendly Node.js Validator

SFN-Validator 是一个简洁友好的表单验证器,它包含下面这些有用的 API:

  • new Validator([rule: object]) 通过给定的规则创建一个新的验证器实例。
  • validator.set(rule: object): object 设置验证规则。
  • validator.check(data: object): object 检查所有的数据是否符合规则。
  • validator.filter(data: object): boolean 根据给定的规则过滤表单数据。

示例

const Validator = require("sfn-validator");

var validator = new Validator({
    name: {
        type: "string",
        required: true,
        length: [3, 18]
    },
    email: {
        type: "email",
        required: true,
        strict: true,
    },
    password: {
        type: "string",
        required: true,
        length: [8, 18],
        msg: {
            required: "You must provide a `%s` in this form.",
            equals: "The length of the `%s` should between %d and %d.",
        }
    },
    check_password: {
        type: "string",
        required: true,
        equals: "password",
    },
    url: "url" // Short-hand, equals to {type: "url"}.
});

try{
    validator.check(data);
}catch(e){
    console.log(e);
}

SFNV 目前支持这些类型:

  • string
  • number
  • boolean
  • object 包含子结点
  • array
  • email
  • url
  • date
  • time Unix时间戳或者合法的时间字符串
  • color 颜色名、十六进制、RGB 或 RGBA 颜色
  • ipv4
  • ipv6
  • mac 物理地址
  • uuid 通用唯一识别码
  • isbn 国际标准书号
  • ascii 值只包含 ASCII 字符
  • base64 值只包含 base64 字符
  • json
  • data-uri

SFNV 包含了一些很有用的特性,包括自定义错误信息、校验两个字段的相等性、无限层级的对象类型字段等。这些特性,只为了让表单验证更简单、更方便。

该模块只引用了一些不依赖硬件的其它模块,因此理论上也可以通过 WebPack 打包并运行在浏览器中。

回到顶部