@robot-admin/form-validate

企业级表单验证规则库,单包同时支持 Naive UI 与 Element Plus
2,176 2
Install
npm install @robot-admin/form-validate
Latest Version:3.4.4
License:MIT
Last Updated:Oct 24, 2026
Links: GitHub  ·  npm
Maintainer: cheny_yang

Robot Form Validate

一份规则定义,贯通界面校验与数据提交。

RuleSpec · Naive UI · Element Plus · 批量校验 · 零运行时依赖

npm version Workspace quality gate MIT License

快速开始 · 能力地图 · 完整指南 · 包总览

项目定位

Robot Form Validate 以框架无关的 RuleSpec 为规则源,通过适配器输出 Naive UI 与 Element Plus 规则,也支持对纯数据执行校验。包名为 @robot-admin/form-validate,无需安装 Vue 或 UI 框架即可使用规则核心。

当前仓库版本 3.4.2。适用于表单实时反馈、导入数据检查、表格多行提交,以及 SQL 数值契约等场景。

能力地图

领域 提供能力
基础与格式 必填、长度、数值、日期、邮箱、URL 与正则
业务规则 手机号、身份证、银行卡、车牌、统一社会信用代码
数值契约 numeric 对齐整数及 SQL DECIMAL(p,s) 的精度、范围与边界
规则组合 条件、跨字段比较、OR / AND、自定义与防抖异步校验
数据提交 validateValue、validateRecord、validateRows 返回首条失败
框架适配 同一套 RuleSpec 输出 Naive UI、Element Plus 或自定义规则
flowchart LR
  Spec["RuleSpec · 规则源"] --> Naive["Naive UI 规则"]
  Spec --> Element["Element Plus 规则"]
  Spec --> Data["纯数据 / 记录 / 多行校验"]

快速开始

bun add @robot-admin/form-validate

先校验一条数据

import { SPEC_RULES, validateRecord } from "@robot-admin/form-validate";

const rules = {
  name: [SPEC_RULES.required("姓名")],
  email: [SPEC_RULES.email("邮箱")],
};

const error = await validateRecord(
  { name: "Robot", email: "robot@example.com" },
  rules,
);
// 全部通过为 null;失败时返回 { field, message }

在表单中使用

import {
  NAIVE_COMBOS,
  PRESET_RULES,
  ELEMENT_COMBOS,
  ELEMENT_RULES,
} from "@robot-admin/form-validate";

const naiveRules = {
  name: NAIVE_COMBOS.username("用户名"),
  email: [PRESET_RULES.email("邮箱")],
};

const elementRules = {
  name: ELEMENT_COMBOS.username("用户名"),
  email: [ELEMENT_RULES.email("邮箱")],
};

naiveRules 传给 Naive UI 的表单规则,elementRules 传给 Element Plus。业务规则只需维护一次;需要跨界面与批量提交复用时,直接维护 RuleSpec 并调用 toNaiveRules / toElementRules。

入口选择与规则语义

所有公开 API 都从包根入口导入:

使用环境 推荐 API
框架无关规则 SPEC_RULES、numeric、whenSpec、someSpec / everySpec
Naive UI PRESET_RULES、NAIVE_COMBOS;RULE_COMBOS 为兼容名称
Element Plus ELEMENT_RULES、ELEMENT_COMBOS、whenElement
提交前校验 validateValue、validateRecord、validateRows
自定义适配 toNaiveRule(s)、toElementRule(s)、createSpec / createAsyncSpec

纯数据校验顺序执行,遇到首条失败即返回。可选字段使用相应命名空间的 optional 或核心 optional() 包装;跨字段规则通过 getter 读取最新模型。UI 触发与展示仍由使用侧表单控制,服务端也应执行业务校验。

文档与维护

文档 内容
完整指南 按场景查找规则、数值契约、组合与适配示例
批量校验 单值、记录与多行校验
迁移说明 旧分包与规则 API 的迁移
变更记录 版本变化与兼容性

在本包目录运行 bun run verify,覆盖类型、测试与构建;工作区完整门禁使用根目录的 bun run verify。

许可证

MIT License · Robot Packages

Related Packages

@dolanske/v-valid

Model based form validation made for vue 3. Inspired by vuelidate with personal...

1,350 1
vee-validate

Painless forms for Vue.js

45,982,707 11,260
@vee-validate/zod

vee-validate integration with zod schema validation

13,782,300 11,260
@vee-validate/rules

Form Validation for Vue.js

9,053,946 11,260

Version History

Version Released License
3.4.4 MIT
3.4.3 MIT
3.4.2 MIT
3.4.1 MIT
3.4.0 MIT