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.');
但是当我在“姓名”输入字段中输入“John Doe”时,它说“姓名必须是字母”而不是成功验证
解决方案
.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 个或更多字符(仅限字母字符或空格)时,验证成功。
推荐阅读
- reactjs - 使用分页容器和加载的无限滚动继电器现代(v11)更多
- javascript - “TypeError:无法读取未定义的属性'map'”但控制台日志结果可以完全正常吗?
- javascript - 如何防止重新渲染未更改的组件?
- ios - 如何上传到谷歌云存储
- kubernetes - pod包含多个容器时的K8s liveness探测行为?
- mysql - 如何仅对sql中另一个表上的列的选定值进行连接
- omnet++ - 通过特定路径发送消息
- google-sheets - 如何使用谷歌表格的填充数据自动添加谷歌日历事件?
- apache-spark - 从 Pyspark 中另一列的值构建一列
- python - 使用python的嵌套for循环中未正确显示迭代值