最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

JOI验证字符串失败,并且

IT培训 admin 4浏览 0评论

JOI验证字符串失败,并且

我使用joi进行验证,并尝试通过以下方式验证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()
});

但是,如果有人输入逗号或完整停止,则验证失败。如何将这些例外添加到验证中?

回答如下:

既然您可能希望允许人们在评论字段中进行任何操作,我只需省略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(),
    // ...
}); 

JOI验证字符串失败,并且

我使用joi进行验证,并尝试通过以下方式验证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()
});

但是,如果有人输入逗号或完整停止,则验证失败。如何将这些例外添加到验证中?

回答如下:

既然您可能希望允许人们在评论字段中进行任何操作,我只需省略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(),
    // ...
}); 

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论