Как проверить, есть ли у ввода в поле ввода алфавиты только в экспресс-валидаторе - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь выдать ошибку, если поле ввода, т. Е. Имя состоит не только из алфавитов в экспресс-валидаторе

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

, но когда я ввожу "Джон Доу" в поле ввода "имя", оно говорит«Имя должно быть буквенным» вместо успешной проверки

1 Ответ

1 голос
/ 20 октября 2019

.isAlpha() описание метода из документации validator.js (экспресс-валидатор также является оберткой для функций проверки этого модуля):

проверить, содержит ли строка только буквы (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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...