Appearance
统一校验 useValidator
useValidator() 统一校验规则库:手机号 / 座机 / 邮箱 / 网址 / IPv4 / IPv6 / 网段 / 邮编 / 身份证 / 银行卡 / 统一社会信用代码 / 车牌 / 数值 / 金额 / 百分比 / 长度 / 异步唯一性的规则构造器。每个构造器返回 FormItemRule[],可直接展开进 el-form 的 rules、BizFormDialog / BizStepsForm 字段的 rules——与库内输入组件(BizPhoneInput / BizIdCardInput 等)同一套口径,表单规则与组件校验不再两套正则。
身份证(GB 11643 校验位)、银行卡(Luhn)、统一社会信用代码(GB 32100-2015 校验位)为算法级校验,不是简单正则。
约定:空值放行,必填显式声明
格式类规则默认空值放行(只校格式,不逼必填)——需要必填传 { required: true },自动叠加「必填 + 格式」两条规则,两种提示语互不干扰:
ts
const v = useValidator()
const rules = {
phone: v.phone({ required: true, label: '手机号' }), // 空 →「请输入手机号」;格式错 →「手机号格式不正确」
email: v.email(), // 选填:空放行,填了才校格式
}所有构造器通用选项:label(生成默认提示)、message(覆盖格式提示)、required / requiredMessage、trigger(默认 blur)。
规则试炼场
切换规则会自动带入一个合法样例(身份证校验位 / 银行卡 Luhn / 信用代码 GB 32100 均为算法级校验,非单纯正则)。
基本信息表单
企业认证表单
网络参数录入
异步唯一性校验
数值类规则
与 BizFormDialog 集成
与 BizStepsForm 集成
0
账号信息
登录凭据
0
企业信息
开票资质
API
useValidator(): BizValidator
| 构造器 | 口径 | 默认提示 |
|---|---|---|
required(label?) | 必填 | 请输入 |
phone() | 1[3-9] 开头 11 位 | 手机号格式不正确 |
landline() | 可带区号 0592-1234567、分机 -123 | 座机号格式不正确 |
email() / url() | 常规格式,url 限 http/https | 邮箱 / 网址格式不正确 |
ip() / ipv6() / cidr() | IPv4 四段 0-255;IPv6 含 :: 缩写;网段 192.168.1.0/24 | IP 地址 / IPv6 地址 / 网段格式不正确 |
zipcode() | 6 位数字 | 邮政编码格式不正确 |
idCard() | 18 位校验位算法(权重模 11),兼容 15 位旧证,校验省份码与月日 | 身份证号格式不正确 |
bankCard() | 12-19 位(忽略空格)+ Luhn | 银行卡号格式不正确 |
creditCode() | 18 位 GB 32100-2015 校验位(31 字符集 + 指定权重) | 统一社会信用代码格式不正确 |
plate() | 省份汉字 + 字母 + 5 位,新能源 6 位(D/F 结尾) | 车牌号格式不正确 |
number({integer,min,max}) | 数字 / 整数 / 范围 | 数值必须是数字 / 整数 / 不能小于 x… |
amount({min,max,precision}) | 数值范围 + 小数位上限(默认 2 位) | 金额最多保留 n 位小数… |
percentage() | 0 ~ 100 | 百分比不能小于 0 / 大于 100 |
length({min,max}) | 字符数区间 | 不能少于 / 超过 n 个字符 |
unique(check) | 异步查重:check(value) => Promise<boolean> | {label}已被占用 |
纯函数与正则(表单外即时判断)
isPhone / isLandline / isEmail / isUrl / isIp / isIpv6 / isCidr / isZipcode / isIdCard / isBankCard / isCreditCode / isPlate 与规则构造器同一套口径;BIZ_PATTERNS 暴露简单格式的原始正则(phone / landline / email / url / zipcode)。
行为要点
- 空值放行:格式规则遇空值直接通过,必填交由
required选项追加的规则——空值不会同时弹两条错误; - 自动 trim:所有校验对输入值做
trim后判定(银行卡额外忽略空格); - trigger 默认 blur:选择类字段可传
{ trigger: 'change' }; - 异步规则容错:
unique的 check 抛异常时提示「校验服务异常,请稍后重试」,不白屏不卡 loading。