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

Sur*_*rai 1 node.js express-validator

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

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

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

Hli*_*nov 6

.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.')
Run Code Online (Sandbox Code Playgroud)

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

来源:validator.js 验证器