验证规则
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自定义复杂逻辑
下一步,我们将学习 对象与嵌套验证。