【发布时间】:2020-08-28 19:05:31
【问题描述】:
当我验证我的 graphql 参数时,我在密码字段中收到类似这样的错误消息。
"password" with value "" fails to match the required pattern: /^(?=\\S*[a-z])(?=\\S*[A-Z])(?=\\S*\\d)(?=\\S*[^\\w\\s])\\S{8,30}$/"
我不想在错误消息中显示正则表达式模式。所以我尝试为密码字段设置自定义错误消息,但它仍然显示正则表达式模式。
import Joi from "joi";
export default Joi.object().keys({
email: Joi.string().email().required().label("Email"),
username: Joi.string().alphanum().min(4).max(20).required().label("Username"),
name: Joi.string().min(4).max(256).required().label("Name"),
password: Joi.string()
.min(8)
.regex(/^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*[^\w\s])\S{8,30}$/)
.required()
.label("Password")
.messages({
"string.min": "Must have at least 8 characters",
"object.regex": "Must have at least 8 characters",
}),
});
我认为它不是通过object.regex 选择正则表达式。请帮忙。
【问题讨论】:
标签: error-handling graphql joi