我使用 joi用于验证,我正在尝试通过以下方式验证 comments textarea 内容:
const schema = Joi.object().keys({
firstName: Joi.string().alphanum().min(3).max(30).required(),
lastName: Joi.string().alphanum().min(3).max(30).required(),
company: Joi.string().alphanum().min(3).max(30).required(),
comments: Joi.string().alphanum().min(30).max(1500).required(),
email: Joi.string().email().required()
});
但是,如果有人输入逗号或句号,则验证失败。如何将这些异常(exception)添加到验证中?
最佳答案
因为您可能希望允许人们在评论字段中进行任何操作,所以我会简单地省略用于评论验证的 alphanum
,如下所示:
const schema = Joi.object().keys({
firstName: Joi.string().alphanum().min(3).max(30).required(),
lastName: Joi.string().alphanum().min(3).max(30).required(),
company: Joi.string().alphanum().min(3).max(30).required(),
// note: no alphanum here
comments: Joi.string().min(30).max(1500).required(),
email: Joi.string().email().required()
});
如果你真的,真的必须有只包含字母、数字、逗号和句点的评论,你可以求助于使用 regex规则:
const schema = Joi.object().keys({
// ...
comments: Joi.string().regex(/^[,. a-z0-9]+$/).required(),
// ...
});
关于javascript - JOI 验证字符串在 , 和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47873369/