如何检查输入字段中的输入是否仅在 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 个或更多字符(仅限字母字符或空格)的字符串时,验证成功。
如果输入字段即名称不仅由 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 个或更多字符(仅限字母字符或空格)的字符串时,验证成功。