主题
验证规则
Yup 提供了丰富的验证规则,可以组合使用以满足各种校验需求。
必填规则
js
const schema = yup.string().required("该字段不能为空");
required(message)
:字段必须有值,否则返回错误信息
长度与范围
字符串长度
js
const schema = yup.string().min(3, "最少 3 个字符").max(10, "最多 10 个字符");
min(length, message)
:最小长度max(length, message)
:最大长度
数字范围
js
const schema = yup.number().min(1, "最小值为 1").max(100, "最大值为 100");
min(value, message)
:最小值max(value, message)
:最大值
正则与模式匹配
js
const schema = yup.string().matches(/^[a-zA-Z0-9]+$/, "只能包含字母和数字");
matches(regex, message)
:正则匹配,用于复杂格式验证
枚举与自定义值
js
const schema = yup.string().oneOf(["admin", "user"], "只能是 admin 或 user");
oneOf(array, message)
:值必须在数组中notOneOf(array, message)
:值不能在数组中
自定义验证
js
const schema = yup.number().test(
"is-even",
"必须为偶数",
(value) => value % 2 === 0
);
test(name, message, fn)
:自定义验证函数,返回 true 或 false
小结
- Yup 验证规则灵活,支持组合
- 可自定义错误信息
- 可以用
test
自定义复杂逻辑
下一步,我们将学习 对象与嵌套验证。