V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xx19941215
V2EX  ›  分享创造

使用 ES6 编写的一个类似 laravel 的 js 验证模块

  •  
  •   xx19941215 · 2019-06-22 21:25:11 +08:00 · 1440 次点击
    这是一个创建于 1987 天前的主题,其中的信息可能已经有所发展或是发生改变。

    validation-es6

    使用 E6S 编写的一个类似 laravel 的 js 验证模块.

    Github 传送门

    安装

    $ npm install validation-es6
    

    基本用法

    import {
        Validator
    } from './node_modules/validation-es6/validator.js';
    
    let rules = {
      username: 'required|min:5',
      password: 'required|confirmed|min:6|max:16',
    }
    
    let data = {
      username: 'test',
      password: '123456',
    }
    
    let v = new Validator(data, rules);
    
    if (v.fails()) {
        console.log(v.messages());
    }
    

    定义验证规则

    • "|" 分隔的字符串形式
    let rules = {
      username: 'required|min:5',
      password: 'required|confirmed|min:6|max:16',
      email: 'email'
    }
    
    • 数组形式
    let rules = {
      username: ['required', 'min:5'],
      password: ['required', ['confirmed'], ['min:6'], ['max:16'],
      email: ['required', 'email']
    }
    

    其他

    • 自定义错误消息、属性别名、验证函数

      在消息字符串用使用:attribute 作为属性名占位符。

      //错误消息
      let customMessages = {
          accepted: ":attribute 必须接受",
      };
      
      //属性别名
      let attribute = {
          "item": "条款"
      }
      
      //使用回调函数定义错误消息
      let replacers = {
          accepted: function (message, attribute, rule,parameters) {
              return message;
          }
      },
      
      let v = new Validator(data, rules, customMessages, attribute, replacers);
      
      //注册自定义验证函数
      v.register('upper', (attribute, value, parameters) => {
          return value.toUpperCase() == "NAME";
      }, ":attribute = :value 不对");
      
      if (v.fails()) {
          console.log(v.messages());
      }
      
      
    1 条回复    2019-06-22 21:31:09 +08:00
    Cbdy
        1
    Cbdy  
       2019-06-22 21:31:09 +08:00 via Android
    为什么不用 joi
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2879 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:26 · PVG 14:26 · LAX 22:26 · JFK 01:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.