javascript - 我们可以在 formik YupValidationSchema 中添加自定义验证吗?

标签 javascript reactjs formik yup

我们可以在下面提到的 formik YupValidationSchema 中添加自定义验证吗?

YupValidationSchema = () => {
        return Yup.object({
             Email: Yup.string()
            .max(256, "Length exceed 256 chars")
            .matches(EMAIL_REGEXP, "Enter a valid email address")
            .required("Email is required")
})
}

我需要为电子邮件字段添加一个验证,就像它应该接受某些域一样

let domainVal = companyName.some((val) => email.includes(val));
     if(!domainVal) error('Invalid')
     else  success('Valid');

谁能帮助我如何在 yupvalidationschema 中添加此域验证代码?

最佳答案

您可以使用 Yup test method为您的电子邮件添加自定义验证

基本语法:.test("test-name", "Error message", function)

return Yup.object({
             Email: Yup.string()
            .max(256, "Length exceed 256 chars")
            .matches(EMAIL_REGEXP, "Enter a valid email address")
            .required("Email is required")
            .test("email-include-domain", "Email Must include domain", (value) => companyNames.some((company) => value.includes(company));

相关 Stackoverflow 帖子:How to get Yup to perform more than one custom validation?

关于javascript - 我们可以在 formik YupValidationSchema 中添加自定义验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68151716/

相关文章:

javascript - jQuery - 有没有比 "parent().parent().parent()"更好的语法

reactjs - 当另一个字段更改时,MUI 自动完成更改所选选项

javascript - Jestjs如何测试在另一个函数内部调用的函数

javascript - 绘图范围不限于 x 轴,绘制整个图表

javascript - Formik:将 Material UI Date Picker 作为 prop 传递给 React Component 时,目标未定义

formik - formik中submit Form、handleSubmit、onSubmit有什么区别?

javascript - 如何将字符串转换为对象

具有扩展原型(prototype)和 "for-in"循环的 JavaScript native 对象

javascript - 显示最后一个索引箭头问题

reactjs - 从状态副本中删除数据后,React setState 不起作用