gpt4 book ai didi

node.js - 如何验证字段是电子邮件还是用户名

转载 作者:行者123 更新时间:2023-12-02 03:13:24 25 4
gpt4 key购买 nike

我正在 node express 后端进行 joi 验证。在登录屏幕上,用户可以在 login 字段中输入他的电子邮件或用户名,我必须验证这是电子邮件还是用户名。在这种情况下我可以使用哪种 joi 模式 - 一个字段的两个可选验证,但必需?欢迎提出任何建议。

最佳答案

要验证特定字段的多个值,可以使用 Joi.alternatives().try()。下面是示例代码。

 login: Joi.alternatives()
.try(
Joi.string()
.lowercase()
.email({
minDomainSegments: 2,
tlds: {
allow: ["com", "net", "in", "co"],
},
}),
Joi.string().alphanum().min(3).max(30)
)
.required()
.error(new Error("Invalid email or userName"))

说明:在上面的代码中,登录字段可以是电子邮件或用户名,它是必填字段,如果该值与任何替代项都不匹配,则会报错。

您也可以使用 [ ] 符号。它是备选方案的简写。

login: [
Joi.string().email(),
Joi.string().alphanum().min(3).max(30)
]

引用Joi documentation .

关于node.js - 如何验证字段是电子邮件还是用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56876562/

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