Как включить много локалей при проверке .isAlpha с validator.js - PullRequest
0 голосов
/ 19 апреля 2019

Работая с приложением express.js, я проверяю входные данные (на стороне сервера) с помощью промежуточного программного обеспечения Express-validator. На конкретном входе, который должен содержать только греческие или английские буквы, я пробую это isAlpha(['el-GR', 'en-US']), как рекомендует библиотека validator.js.

Однако при тестировании я получаю эту ошибку:

Недопустимый язык 'el-GR, en-US'

Что я делаю не так?

1 Ответ

1 голос
/ 22 апреля 2019

Согласно библиотеке validator.js , которую использует экспресс-валидатор, вы можете указать только одну локаль.

Язык является одним из ...

Что вы можете сделать, это создать собственный валидатор, который перебирает все символы в строке и проверяет, является ли это альфа в правильной локали. Э.Г.

const { validator } = require('express-validator');
const { check } = require('express-validator/check');

module.exports.add = [
    check('title').custom(value => {
      for(let charIdx = 0; charIdx < value.length; charIdx += 1) {
          if (!validator.isAlpha(value[charIdx], 'en-US')
           && !validator.isAlpha(value[charIdx], 'el-GR')) {
            throw new Error('Illegal title'); 
          }   
      }

      return true;
    })
];

add - функция цепочки валидатора.

Я не проверял все крайние случаи, но на первый взгляд на моей машине все выглядело нормально.

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