首页 > 解决方案 > 如何检查输入字段中的输入是否仅在 express-validator 中包含字母

问题描述

如果输入字段(即名称)不仅包含 express-validator 中的字母,我会尝试给出错误

req.check('name')
     .isLength({min:3}).withMessage('Name must be of 3 characters long.')
     .isAlpha().withMessage('Name must be alphabetic.');

但是当我在“姓名”输入字段中输入“John Doe”时,它说“姓名必须是字母”而不是成功验证

标签: node.jsexpress-validator

解决方案


.isAlpha()validator.js 文档中的方法描述(express-validator 也是该模块验证功能的包装器):

检查字符串是否只包含字母(a-zA-Z)

您的字符串John Doe包含一个空格,这就是验证不成功的原因。

您的验证链可以是这个:

req.check('name')
   .isLength({min:3}).withMessage('Name must be of 3 characters long.')
   .matches(/^[A-Za-z\s]+$/).withMessage('Name must be alphabetic.')

.isAlpha()替换为matches()name当字符串包含 3 个或更多字符(仅限字母字符或空格)时,验证成功。

来源:validator.js 验证器


推荐阅读