我有一个场景,我需要使用不同的正则表达式验证增值税号,具体取决于它所在的国家/地区。因此,当该字段language
是SE
我想/^\d{6}-\d{4}$/
在该字段上使用这个正则表达式时company.vatNo
,但是当该字段language
是NO
我想使用这个/^\d{9}(MVA)?$/
.. 我想我可以使用 Joi 的 when(),但它似乎根本不起作用。有谁知道我怎么能做到这一点?
这是我验证的路线:
module.exports = {
method: 'POST',
path: '/signup/{partner}',
handler: createPartner,
config: {
validate: {
payload: {
language: Joi.string().allow(config.supportedLanguages).required(),
company: {
vatNo: {
Joi
.when('language', {
is: 'SE',
then: Joi.string().regex(/^\d{6}-\d{4}$/).required()
})
.when('language', {
is: 'NO',
then: Joi.string().regex(/^\d{9}(MVA)?$/).required()
})
.when('language', {
is: 'FI',
then: Joi.string().regex(/^\d{7}-\d{1}$/).required()
})
}
}
}
}
}
谢谢