js-joi

1.0.4 • Public • Published

js-joi: 一个简易的js链式校验工具

安装

npm install --save js-joi

api说明(设置label 则label会添加到错误信息前 this._label + message)

事件名称 说明 参数 默认提示
.data() 数据输入 (input) --
.label() 标签输入 (label) --
.required() 必填(不为空) (message = '不为空') 不为空
.mobile() 中国手机号 (message = '手机号不正确') 手机号不正确
.email() 邮箱 (message = '格式不正确') 格式不正确
.images() 匹配图片 (message = '未知图片格式') 未知图片格式
.video() 匹配视频 (message = '未知视频格式') 未知视频格式
.ID() 身份证号 二代身份证号(18位数字),
最后一位是校验位,可能为数字或字符X
(message = '身份证不合法') 身份证不合法
.integet() 整数 (message = '必须为整数') 必须为整数
.number() 数字 (message = '必须数字格式') 必须数字格式
.letter() 字母 (message = '必须是英文') 必须是英文
.chinese() 中文 (message = '必须是中文') 必须是中文
.enum() 枚举 (arr = [], message = 值必须为${arr.join(',')}中的一个)
.min() 最小值 (num = 0, message = 最小值为${num}) 最小值为0
.max() 最大值 (num = 100, message = 最大值为${num}) 最大值为100
.minLength() 最小长度 (length = 6, message = 长度不能小于${length}位) 长度不能小于6位
.maxLength() 最大长度 (length = 6, message = 长度不能大于${length}位) 长度不能大于6位
.length() 固定长度 (length = 6, message = 长度必须为${length}位) 长度必须为6位
.currency() 数字/货币金额
(支持负数、千分位分隔符)
(message = '格式不正确') 格式不正确
.Pcurrency() 数字/货币金额
(只支持正数、不支持校验千分位分隔符)
(message = '格式不正确') 格式不正确
.judge() 自定义判断条件校验(传入条件进行判断) (condition:Boolean, message = '条件不正确') 条件不正确
.regExp() 自定义正则校验 (reg, message = '格式不正确') 格式不正确

使用:

import Joi from 'js-joi'

多数据同时验证


const validJoi = new Joi()
validJoi
    .data('1234')
    .label('id')  // 设置label 则label会添加到错误信息前
    .required('不能为空')
    .minLength(3, '不能少于3位')
    .maxLength(5, '不能多于5位')

    // .data('1234')
    // 不设置label 则错误信息完全定制 需要输入完整错误信息
    // .required('id不能为空')

    .data('1234@qq.')
    .label('邮箱')
    .required('不能为空')
    .email('格式不正确')

    .data(13100000000)
    .label('电话号码')
    .required('不能为空')
    .mobile('电话号码输入错误')

if (!validJoi.pass) {
    // 打印错误信息
    console.log(validJoi.errorMessage)
    
    // 调用弹窗组件提示错误信息
    // this.$message.error(validJoi.errorMessage)
    return
}

当然你只校验一个字段的话也可以这么使用:

const idJoi = new Joi('1234', '数据')
idJoi
    .required('不能为空')
    .min(3, '不小于3')
    .max(1024, '不大于1024')
    .email('邮箱格式不正确')
    .regexp(/012345/, '格式错误')

Package Sidebar

Install

npm i js-joi

Weekly Downloads

0

Version

1.0.4

License

ISC

Unpacked Size

10.1 kB

Total Files

3

Last publish

Collaborators

  • iarjian