Я хочу использовать шаблон регулярного выражения, который определяется в переменной
У меня есть переменная шаблон, которая содержит регулярное выражение то есть
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
}
}
}
Но в моем случае каждый раз регулярное выражение будет другим. Поэтому я не могу использовать приведенный выше шаблон регулярного выражения
Я изменил последнее предложение, проверьте еще раз



Если вы хотите использовать шаблон в качестве переменной, просто передайте его:
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()
}
}
});
Хотя этот код может решить проблему, хороший ответ должен также объяснить какие код делает и как он помогает.
Да, я хочу использовать переменную шаблона