问题
I want to joi use regex pattern which define in variable
I have a variable pattern which contains regex i.e
pattern = "/^[0-9+]{7}-[0-9+]{1}$/"
and this pattern send to Joi module and want to confirm
module.exports = {
save: {
body: {
match: Joi.string().regex(pattern).required
}
}
}
I know validation work if I use this
module.exports = {
save: {
body: {
match: Joi.string().regex(/^[0-9+]{7}-[0-9+]{1}$/).required
}
}
}
But in my case every time regex will different. So I can not use above regex pattern
回答1:
If you want to use pattern as variable, just pass it:
module.exports = (pattern) => ({
save: {
body: {
match: Joi.string().regex(pattern).required
}
}
});
And use it like:
const pattern = "/^[0-9+]{7}-[0-9+]{1}$/";
validator(pattern)
回答2:
module.exports = (exp) => ({
save: {
body: {
match: Joi.string().pattern(new RegExp(exp)).required()
}
}
});
来源:https://stackoverflow.com/questions/55136627/joi-validation-regex-or-pattern