检查输入是否有空格并使用 Express 显示错误消息的最佳方法

Dan*_*iel 1 node.js express express-validator

我正在尝试验证用户名字段,但我不希望字符串中有任何空格。我想向用户显示一个错误。

我正在使用 express-validator express 中间件来验证输入。它适用于所有其他情况,但我不知道验证没有空格的最佳方法。

https://www.npmjs.com/package/express-validator

我的代码

这就是我所拥有的,但目前可以将带空格的用户名存储在数据库中。

check('user_name').isLength({ min: 1 }).trim().withMessage('User name is required.')
Run Code Online (Sandbox Code Playgroud)

理想情况下,我可以使用快速验证器方法。

谢谢你。

gus*_*nke 5

trim 仅适用于去除字符串周围的空格,但在字符串中间不起作用。

不过,您可以轻松编写自定义验证器:

check('username')
  .custom(value => !/\s/.test(value))
  .withMessage('No spaces are allowed in the username')
Run Code Online (Sandbox Code Playgroud)

自定义验证器使用正则表达式来检查是否存在任何空白字符(可能是通常的空白、制表符等),并否定结果,因为验证器需要返回一个真值才能通过。