字段校验
为了确保数据表的准确性、安全性和一致性,NocoBase 提供了字段校验功能。该功能主要分为两个部分:配置规则和校验规则。
配置规则

NocoBase 系统字段是集成了 Joi 的规则,支持情况如下:
字符串类型
Joi 字符串类型对应的 NocoBase 字段类型包括:单行文本、多行文本、手机号、邮箱、URL、密码、UUID。
通用规则
- 最小长度
- 最大长度
- 长度
- 正则表达式
- 必填
邮箱
URL
UUID
数字类型
Joi 数字类型对应的 NocoBase 字段类型包括:整数、数字、百分比。
通用规则
- 大于
- 小于
- 最大值
- 最小值
- 整数倍
整数
数字与百分比
除通用规则外,数字和百分比字段额外支持精度验证。

日期类型
Joi 日期类型对应的 NocoBase 字段类型包括:日期(含时区)、日期(不含时区)、仅日期、Unix 时间戳。
支持的验证规则:
- 大于
- 小于
- 最大值
- 最小值
- 时间戳格式验证
- 必填
关系字段
关系字段仅支持必填验证。需要注意的是,关系字段的必填验证暂不支持在子表单或子表格场景下应用。

校验规则应用
配置字段规则后,在添加或修改数据时将触发相应的校验规则。

当字段用于表单时,字段验证规则也会显示在字段的验证设置中。这些规则会出现在「服务端字段验证规则」下,并且在这里只读展示。如果需要修改这些规则,需要回到「数据源 / 数据表配置」中编辑字段。
你仍然可以在「客户端验证规则」下为当前表单字段添加额外规则。这些规则只影响当前字段组件。最终生效的验证规则会合并「服务端字段验证规则」和「客户端验证规则」。
校验规则同样适用于子表格和子表单组件:


需要注意的是,在子表单或子表格场景中,关系 字段的必填验证暂不生效。

服务端字段验证规则与客户端验证规则的区别
服务端字段验证规则和客户端验证规则配置在不同位置,作用范围也不同。
配置方式差异
- 服务端字段验证规则:在「数据源 / 数据表配置」中设置字段规则。这些规则是字段的基础规则
- 客户端验证规则:在表单字段的设置中添加额外规则。这些规则只影响当前字段组件


校验触发时机差异
- 服务端字段验证规则:字段用于表单时会触发前端验证,数据写入前也会触发校验。工作流、数据导入等新增或修改数据的场景也会应用这些规则
- 客户端验证规则:只在当前表单字段中触发前端验证
- 规则展示:服务端字段验证规则会作为继承规则只读展示。客户端验证规则会单独展示,并且可以在这里编辑
- 错误信息:客户端验证规则支持自定义错误信息,服务端字段验证规则暂不支持自定义错误信息


