如何检查输入字段中的输入是否仅在 express-validator 中包含字母

How to check if input in input field has alphabets only in express-validator

如果输入字段即名称不仅由 express-validator 中的字母组成,我会尝试给出错误

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

但是当我在 "name" 输入字段中输入 "John Doe" 时,它显示 "Name must be alphabetic" 而不是成功验证

.isAlpha() 方法描述来自 validator.js 文档(express-validator 也是该模块验证函数的包装器):

check if the string contains only letters (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 validators