gpt4 book ai didi

javascript - Joi 验证 2 个输入字段中至少有一个已完成

转载 作者:行者123 更新时间:2023-12-05 04:21:21 25 4
gpt4 key购买 nike

当谈到 joi 的 .or() 函数时,我似乎遇到了障碍,因为它似乎没有像我预期的那样实现。

我有 2 个文本输入字段,它们都有自己的验证方式,但至少只需要一个。

    const schema = joi
.object({
"either-this-field": joi.string().trim().max(26),
"or-this-field": joi
.string()
.trim()
.regex(/^\d+$/)
.max(26)
"other-field-1": joi.string().required(),
"other-field-2": joi.string().max(40).required(),

})
.or("either-this-field", "or-this-field");

这 or 似乎没有像我期望的那样做,并且 or 中的每个字段都按照它自己的验证规则进行了验证

如果两个字段都没有值,那么我将显示两个字段的错误,直到至少有一个完成

最佳答案

From here

var schema = Joi.alternatives().try(
Joi.object().keys({
a: Joi.string().allow(''),
b: Joi.string()
}),
Joi.object().keys({
a: Joi.string(),
b: Joi.string().allow('')
})
);

alternatives().try() 添加了一个替代模式类型,用于尝试匹配已验证的值。您正在传递两个选项,它会选择其中一个。

关于javascript - Joi 验证 2 个输入字段中至少有一个已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74236584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com