yup - 如何使用 YUP 中的验证器 #1 或验证器 #2 检查字段是否有效
问题描述
我需要检查字段是否包含电话号码或电子邮件。
像这样的东西:
const phoneOrEmailValidationSchema = Yup.object().shape({
phoneOrEmail: Yup.string()
.oneOfValidators(
[Yup.string().email(), Yup.string().min(5)],
"must be phone or email"
)
.required("Required phoneOrEmail"),
});
YUP可以做到吗?
解决方案
const phoneOrEmailValidationSchema = Yup.object().shape({
phoneOrEmail: Yup.lazy((value) => {
if (value.indexOf("@") === -1) {
return Yup.string().min(5);
}
return Yup.string().email();
}),
});
如果您可以在运行时确定要运行哪个验证,则可以使用此方法。如果您无法确定要运行哪个验证,则不确定如何执行此操作。
推荐阅读
- python - Django-models 将 dateField 的格式更改为“DD-MM-YYY”
- angular - Angular 7:为 ngComponentOutlet 注入依赖项
- c# - 比较同一个值,vector3为负数时不能使用operator ==?
- angular - 如何在不使用 await 的情况下使用 .then() 等待并使用订阅的发出值?
- laravel - 下拉过滤器在 Laravel 5.8 中不起作用
- laravel - 将请求放入POSTMAN,laravel
- javascript - 位置更改后javascript如何继续执行
- rest - 带有 Spring Boot 控制器的参数的 RestTemplate GET
- javascript - 显示:块;基于 ul 中列表项的数量
- javascript - 运行功能后在新选项卡中打开链接(.pdf 文件)且不更改路线