问题描述
使用 Joi 验证字符串时,使用以下架构:
title: Joi.string().required(),
它不会验证如下所示的空字符串:" "
。我认为在每个字段上重复 string().trim()
是不正确的。如何验证空字符串?根据{{3}},Joi 不应该处理这个吗?
注意空字符串默认是不允许的,必须是 使用允许('')启用。不要想太多,只记得空 默认情况下,字符串不是有效字符串。另外,不要要求改变它 或争论为什么它没有意义。此主题已关闭。
解决方法
您可以使用 .regex() 来验证您的字段。
例如,以下模式将验证任何仅包含空格(至少一个)的字符串:
const schema = Joi.object({
a: Joi.string().regex(/^\s+$/)
})
schema.validate({ a: ' ' }) // valid
schema.validate({ a: ' ' }) // valid
schema.validate({ a: '' }) // invalid,adding .allow('') will validate
schema.validate({ a: '1 ' }) // invalid
schema.validate({ a: '11' }) // invalid