gpt4 book ai didi

javascript - Joi 验证显示自定义错误消息

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

您好,我正在使用 "@hapi/joi": "^15.1.1"。很遗憾,我现在无法更新到最新的 Joi 版本。

这是我的验证模式

 const schema = {
name: Joi.string()
.allow("")
.max(30),
addLine1: Joi.string()
.required()
.label("Address Line 1"),
locality: Joi.string()
.required()
.label("City"),
region: Joi.string()
.required()
.label("State"),
zipCode: Joi.number()
.required()
.label("Zip Code"),
phoneNo: Joi.string()
.required("Required")
.regex(/^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$/)

};

然后我验证并显示发生的第一个错误

const result = Joi.validate(this.state.addressDetails, this.schema, {
abortEarly: true,
});
return const errors = result.error.details[0].message;

这行得通。唯一的问题是我想显示自定义错误消息而不是默认错误消息。

地址的默认错误消息是"Address Line 1"is not allowed to be empty"而不是这个,我想显示 "Address is required!"

对于正则表达式默认的是

phoneNo with value "555" fails to match the required pattern: /^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$/

相反,我想显示请输入有效的电话号码

我如何使用版本 15.1.1 实现此目的。较新版本的 messages 在这里无济于事。

最佳答案

尝试从 .error返回消息回调

  addLine1: Joi.string()
.required()
.label("Address Line 1").error(()=>'"Address Line 1" is not allowed to be empty'),

关于javascript - Joi 验证显示自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67666200/

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