验证规则

Yup 提供了丰富的验证规则,可以组合使用以满足各种校验需求。

必填规则

const schema = yup.string().required("该字段不能为空");

`

  • required(message):字段必须有值,否则返回错误信息

长度与范围

字符串长度

const schema = yup.string().min(3, "最少 3 个字符").max(10, "最多 10 个字符");
  • min(length, message):最小长度
  • max(length, message):最大长度

数字范围

const schema = yup.number().min(1, "最小值为 1").max(100, "最大值为 100");
  • min(value, message):最小值
  • max(value, message):最大值

正则与模式匹配

const schema = yup.string().matches(/^[a-zA-Z0-9]+$/, "只能包含字母和数字");
  • matches(regex, message):正则匹配,用于复杂格式验证

枚举与自定义值

const schema = yup.string().oneOf(["admin", "user"], "只能是 admin 或 user");
  • oneOf(array, message):值必须在数组中
  • notOneOf(array, message):值不能在数组中

自定义验证

const schema = yup.number().test(
  "is-even",
  "必须为偶数",
  (value) => value % 2 === 0
);
  • test(name, message, fn):自定义验证函数,返回 true 或 false

小结

  • Yup 验证规则灵活,支持组合
  • 可自定义错误信息
  • 可以用 test 自定义复杂逻辑

下一步,我们将学习 对象与嵌套验证