如何在 yup 中验证枚举

Pay*_*mB. 10 validation node.js typescript yup

我正在使用 yup 为我的数据创建验证,我该如何处理枚举?

这是我的验证示例 - 我正在使用 yup 的 object.shape 方法:

export const deleteCityValidation = yup.object().shape({
  id: yup.string()
});

Run Code Online (Sandbox Code Playgroud)

寻找一种方法来验证输入字段,该字段应该只有一组枚举中的值,任何帮助表示赞赏。

是否可以使用 yup.arrays 来验证枚举?

b0b*_*b0b 30

下面的代码适用于您的示例:

  field: yup.mixed<EnumName>().oneOf(Object.values(EnumName))
    .required(),
Run Code Online (Sandbox Code Playgroud)


hbi*_*uni 15

您可以使用如下示例:

let schema = yup.mixed().oneOf(['jimmy', 42]);

await schema.isValid(42); // => true
await schema.isValid('jimmy'); // => true
await schema.isValid(new Date()); // => false
Run Code Online (Sandbox Code Playgroud)

更多信息

  • 或者他可以根据变量的类型使用正则表达式:`let schema = string().matches(/(jimmy|test)/);` (3认同)