Экспресс-валидатор с использованием Regex для полей тела запроса - PullRequest
0 голосов
/ 08 октября 2019

Мой запрос POST отправляет поля формы с именами, похожими на email-0, email-1, email-2, на серверную часть Express, но точное количество таких полей может отличаться. Как использовать API проверки для проверки этих полей, когда я не знаю всех фактических имен заранее. Я попытался использовать Regex как таковой: body('\\^email-[0-9]*$\\', 'Must be valid email.').isLength({min: 5}).trim(),, но до сих пор я не получил его на работу.

Неужели я не избегаю Regex должным образом, или просто невозможно использовать Regex таким образом? Если нет, есть ли другое решение для того, к чему я стремлюсь, то есть, когда мы заранее не знаем всех точных названий полей? (Я прочитал объяснение подстановочных знаков в официальной документации Express-Validator , но они здесь не применимы, или я что-то упустил?).

1 Ответ

0 голосов
/ 08 октября 2019

Похоже, это работает:

        (req,res,next)=> {
            Object.keys(req.body).filter(fld=>fld.match(new RegExp('^email\\S*-[0-9]*$'))).forEach(fld=>
                body(fld, 'Must be valid email.').isLength({min: 5}).trim());
                next();
        }

Вместо body('\\^email-[0-9]*$\\', 'Must be valid email.').isLength({min: 5}).trim()

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