Joi Validation Regex или шаблон

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

У меня есть переменная шаблон, которая содержит регулярное выражение то есть

pattern = "/^[0-9+]{7}-[0-9+]{1}$/"

и этот шаблон отправляется в модуль Joi и хочет подтвердить

module.exports = {
    save: {
        body: {
          match: Joi.string().regex(pattern).required
        }
     }
 }

Я знаю работу проверки, если я использую это

module.exports = {
        save: {
            body: {
              match: Joi.string().regex(/^[0-9+]{7}-[0-9+]{1}$/).required
            }
         }
     }

Но в моем случае каждый раз регулярное выражение будет другим. Поэтому я не могу использовать приведенный выше шаблон регулярного выражения

Да, я хочу использовать переменную шаблона

Imran Rafiq 13.03.2019 09:00

Я изменил последнее предложение, проверьте еще раз

Imran Rafiq 13.03.2019 09:48
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
8
2
16 927
2

Ответы 2

Если вы хотите использовать шаблон в качестве переменной, просто передайте его:

module.exports = (pattern) => ({
  save: {
    body: {
      match: Joi.string().regex(pattern).required
    }
  }
});

И используйте его как:

const pattern = "/^[0-9+]{7}-[0-9+]{1}$/";
validator(pattern)
module.exports = (exp) => ({
   save: {
       body: {
         match: Joi.string().pattern(new RegExp(exp)).required()
       }
   }
});

Хотя этот код может решить проблему, хороший ответ должен также объяснить какие код делает и как он помогает.

BDL 06.04.2020 11:31

Другие вопросы по теме