javascript - JOI 验证字符串在 , 和

标签 javascript node.js validation joi

我使用 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/

相关文章:

javascript - 我想使用 window.getSelection 制作一个具有大胆功能的 HTML 文本编辑器

javascript - 如何使带有 <input> 按钮的搜索栏在输入时打开域?

javascript - 如何使用当前设置实现 tic tac toe 获胜条件?

javascript - mongodb/mongoose 中的保存方法

validation - 用于验证的 AngularJS 自定义指令 - 输入取决于另一个

asp.net - 如果文本框无法通过 RequiredFieldValidator,是否可以将特定 CSS 应用于文本框?

javascript - 在handsontable中选择多个随机行

javascript - Electron:如何在另一个文件中引用全局BrowserWindow对象?

C# windows 窗体检查所有条目然后显示消息框

javascript - 如何修复appendChild()来创建div元素节点?