更新记录

1.0.01(2024-07-31) 下载此版本

导出类型供使用;

import type { FormRules } from '@/js_sdk/a-hua-validate'; import type { FormRules } from '@/js_sdk/a-hua-validate/uni'; import type { FormRules, WebShowToastOptions } from '@/js_sdk/a-hua-validate/web'; import type { FormRules, WebShowToastOptions, ...... } from '@/js_sdk/a-hua-validate/type';

1.0.0(2024-05-05) 下载此版本

初体验


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue app-nvue app-uvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

validate 验证

Usage

/** 返回错误信息 */
import validate from '@/js_sdk/a-hua-validate';

validate(
    { name: '', age: '' },
    {
        name: [
            { required: true, message: '姓名不能为空' }, 
            { min: 5, message: '姓名字符不应超过 5个 字符' }
        ],
        age: { required: true, message: '年龄不能为空' }
    }
);
/** 返回错误信息 */
// import { FormRules } from '@/js_sdk/a-hua-validate/type';
import validate, { FormRules } from '@/js_sdk/a-hua-validate';

/** 校验配置 */
const rules: FormRules = {
    name: [
        { required: true, message: '姓名不能为空' }, 
        { min: 5, message: '姓名字符不应超过 5个 字符' }
    ],
    age: { required: true, message: '年龄不能为空' }
};

validate({ name: '', age: '' }, rules);
/** 使用 uni.showToast 提示错误信息 */
import validate from '@/js_sdk/a-hua-validate/uni';

validate(
    { name: '', age: '' },
    {
        name: [
            { required: true, message: '姓名不能为空' }, 
            { min: 5, message: '姓名字符不应超过 5个 字符' }
        ],
        age: { required: true, message: '年龄不能为空' }
    },
    UniAppShowToastOptions = {} // uni.showToast 参数
);
/** 使用 uni.showToast 提示错误信息 */
// import { FormRules } from '@/js_sdk/a-hua-validate/type';
import validate, { FormRules } from '@/js_sdk/a-hua-validate/uni';

/** 校验配置 */
const rules: FormRules = {
    name: [
        { required: true, message: '姓名不能为空' }, 
        { min: 5, message: '姓名字符不应超过 5个 字符' }
    ],
    age: { required: true, message: '年龄不能为空' }
};

validate(
    { name: '', age: '' },
    rules,
    {} as UniApp.ShowToastOptions // uni.showToast 参数
);
/** 自定义 showToast 提示错误信息 */
import validate from '@/js_sdk/a-hua-validate/web';

validate(
    { name: '', age: '' },
    {
        name: [
            { required: true, message: '姓名不能为空' }, 
            { min: 5, message: '姓名字符不应超过 5个 字符' }
        ],
        age: { required: true, message: '年龄不能为空' }
    },
    WebShowToastOptions = {} // showToast 参数
);
/** 自定义 showToast 提示错误信息 */
// import { FormRules, WebShowToastOptions } from '@/js_sdk/a-hua-validate/type';
import validate, { FormRules, WebShowToastOptions } from '@/js_sdk/a-hua-validate/web';

/** 校验配置 */
const rules: FormRules = {
    name: [
        { required: true, message: '姓名不能为空' }, 
        { min: 5, message: '姓名字符不应超过 5个 字符' }
    ],
    age: { required: true, message: '年龄不能为空' }
};

validate(
    { name: '', age: '' },
    rules,
    {} as WebShowToastOptions // showToast 参数
);

Options

UniAppShowToastOptions

name type default
mask boolean false
duration number 1500
title string undefined
image string undefined
fail () => void undefined
success () => void undefined
complete () => void undefined
position top | center | bottom undefined
icon success | error | fail | exception | loading | none success
  • icon:图标;
  • fail:调用失败的回调函数;
  • success:调用成功的回调函数;
  • duration:提示的延迟时间,单位毫秒;
  • mask:是否显示透明蒙层,防止触摸穿透;
  • image:自定义图标的本地路径(app端暂不支持gif);
  • complete:调用结束的回调函数(调用成功、失败都会执行);
  • position:纯文本轻提示显示位置,填写有效值后只有 title 属性生效,且不支持通过 uni.hideToast 隐藏

WebShowToastOptions

name type default explain
zIndex number 12 层级
duration number 1500 提示的延迟时间,单位毫秒
mask boolean false 是否显示透明蒙层,防止触摸穿透

Use Rule

每一个验证规则中,可以配置多个属性,下面对常用的属性进行讲解,更具体的可以查看 async-validator 的文档说明:

type string 内置校验规则,如这些规则无法满足需求,可以使用正则匹配、或者使用validator自定义方法验证规则。

  • url:url 类型
  • float:浮点数类型
  • integer:整数类型
  • date:date 类型
  • hex:16 进制类型
  • email:email 类型
  • array:array 类型
  • object:object 类型
  • string:string 类型
  • number:number 类型
  • boolean:boolean 类型
  • method:function 类型
  • required boolean,是否必填
  • enum:须出现在 enmu 指定的值中
  • regexp:regexp 类型,这里的正则,指的是判断字段的内容是否一个正则表达式,而不是用这个正则去匹配字段值
  • pattern 要求此参数值为一个正则表达式,如: /\d+/,不能带引号,如:"/\d+/",组件会对字段进行正则判断,返回结果。

message 校验不通过时的提示信息


max 最大值,规则同 min 参数


enum Array 指定的值,配合 type: 'enum' 使用


len 指定长度,规则同 min,优先级高于 minmax


whitespace boolean 设置该值为 true,如果字段值内容都为空格,默认无法通过 required: true 校验


min 最小值,如果字段类型为字符串和数组,会取字符串长度与数组长度 lengthmin 比较,如果字段是数值,则直接与 min 比较。


transform (value: unknown) => unknown,校验前对值进行转换,函数的参数为当前值,返回值为改变后的值,参数如:value:当前校验字段的值


validator function:自定义同步校验函数,参数如下:

  • rule:当前校验字段在 rules 中所对应的校验规则
  • value:当前校验字段的值
  • callback:校验完成时的回调,一般无需执行callback,返回true(校验通过)或者false(校验失败)即可

asyncValidator function:自定义异步校验函数,参数如下:

  • rule:当前校验字段在 rules 中所对应的校验规则
  • value:当前校验字段的值
  • callback:校验完成时的回调,执行完异步操作(比如向后端请求数据验证),如果不通过,需要callback(new Error('提示错误信息')),如果校验通过,执行callback()即可

Contact

  • 欢迎大家提供建议

Enjoy!

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问