Joi 验证正则表达式或模式
Posted
技术标签:
【中文标题】Joi 验证正则表达式或模式【英文标题】:Joi Validation Regex or pattern 【发布时间】:2019-08-03 19:40:06 【问题描述】:我想使用在变量中定义的正则表达式模式
我有一个包含正则表达式的变量 pattern 即
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
但就我而言,每次正则表达式都会有所不同。所以我不能使用上面的正则表达式模式
【问题讨论】:
是的,我想使用模式变量 最后一句我改了请再检查一下 【参考方案1】:如果你想使用模式作为变量,只需传递它:
module.exports = (pattern) => (
save:
body:
match: Joi.string().regex(pattern).required
);
并像这样使用它:
const pattern = "/^[0-9+]7-[0-9+]1$/";
validator(pattern)
【讨论】:
【参考方案2】:module.exports = (exp) => (
save:
body:
match: Joi.string().pattern(new RegExp(exp)).required()
);
【讨论】:
虽然这段代码可能会解决问题,但一个好的答案还应该解释代码的什么以及它如何提供帮助。以上是关于Joi 验证正则表达式或模式的主要内容,如果未能解决你的问题,请参考以下文章