从 @hapi/joi 错误消息中删除特殊字符
Removing special characters from @hapi/joi error messages
我正在使用来自@hapi/joi 的 Joi 来验证我的数据,但是当我尝试通过删除反斜杠和双引号来自定义错误消息时;它不起作用。
我的验证函数
const validateSignup = (user) => {
const schema = Joi.object().keys({
first_name: Joi.string().min(3).max(20)
.required(),
last_name: Joi.string().min(3).max(20)
.required(),
email: Joi.string().email({ minDomainSegments: 2 }).trim().required(),
password: Joi.string().regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/)
.required()
});
const options = {
abortEarly: false,
key: '"{{key}}" ',
escapeHtml: true,
language: {
string: {
base: '{{key}} '
}
}
};
return schema.validate(user, options);
};
我试图在线搜索,但由于某种原因,它不起作用。我究竟做错了什么?请帮忙。
邮递员的回应
此版本 https://github.com/hapijs/joi/issues/2262. Default label:'"'
. Though this feature is available, you may not get typings for it till https://www.npmjs.com/package/@types/hapi__joi/v/16.0.12 后,可以在 @hapi/joi 中自定义错误消息以删除双引号,希望他们尽快添加。
const options = {
errors: {
wrap: {
label: ''
}
}
};
return schema.validate(user, options);
对于您的情况,上述配置删除了双引号。
Here is the output without double quote
我正在使用来自@hapi/joi 的 Joi 来验证我的数据,但是当我尝试通过删除反斜杠和双引号来自定义错误消息时;它不起作用。
我的验证函数
const validateSignup = (user) => {
const schema = Joi.object().keys({
first_name: Joi.string().min(3).max(20)
.required(),
last_name: Joi.string().min(3).max(20)
.required(),
email: Joi.string().email({ minDomainSegments: 2 }).trim().required(),
password: Joi.string().regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/)
.required()
});
const options = {
abortEarly: false,
key: '"{{key}}" ',
escapeHtml: true,
language: {
string: {
base: '{{key}} '
}
}
};
return schema.validate(user, options);
};
我试图在线搜索,但由于某种原因,它不起作用。我究竟做错了什么?请帮忙。
邮递员的回应
此版本 https://github.com/hapijs/joi/issues/2262. Default label:'"'
. Though this feature is available, you may not get typings for it till https://www.npmjs.com/package/@types/hapi__joi/v/16.0.12 后,可以在 @hapi/joi 中自定义错误消息以删除双引号,希望他们尽快添加。
const options = {
errors: {
wrap: {
label: ''
}
}
};
return schema.validate(user, options);
对于您的情况,上述配置删除了双引号。
Here is the output without double quote