1.0.4 • Published 2 years ago

js-joi v1.0.4

Weekly downloads
1
License
ISC
Repository
-
Last release
2 years ago

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/, '格式错误')
1.0.4

2 years ago

1.0.3

4 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago