Joi.object({
phone: Joi
.string()
.custom((value, helper) => {
// you can use any libs for check phone
if (!checkPhone(value)) {
return helper.message("phone is incorrect")
return value
})
}).validate({
phone: '+79002940163'
});
For Mobile number:
mobile: Joi.number().integer().min(10 ** 9).max(10 ** 10 - 1).required().messages({
'number.min': 'Mobile number should be 10 digit.',
'number.max': 'Mobile number should be 10 digit'
})
For other digit check:
yourparam: Joi.number().integer().min(1000).max(9999).required().messages({
'number.min': 'OTP should be 4 digit.',
'number.max': 'OTP should be 4 digit'
})
9条答案
按热度按时间olmpazwi1#
10位数字移动的号码验证如下所示
pattern(你的正则表达式)用于只接受数字,length()用于验证可以接受多少字符,并且只适用于字符串函数。
6ovsh4lw2#
验证10位数字移动的号码与自定义错误消息如下所示
xkftehaa3#
不幸的是,Hapi/joi目前还没有对数字进行位数计数检查。虽然Sachin Shah说得对,您必须将数字转换为字符串,但您还必须向验证器传递一个正则表达式,以确保只允许使用数字值:
joi.string().length(14).regex(/^\d+$/)
w46czmvw4#
您可以使用自定义验证器
文件:https://github.com/hapijs/joi/blob/master/API.md#anycustommethod-description
6ie5vjzr5#
例如,birth_year是介于1900和2013之间的整数
你可以像这样用joi来表示数字。
像这样u可以传递你的最小值和最大值来验证
niwlg2el6#
Joi在默认情况下会转换字符串,文档中有详细说明。全局禁用convert或者在特定模式下使用strict。
guicsvcw7#
minCount: Joi.number().strict()
如果您使用@hapi/joi
ttcibm8c8#
zsbz8rwp9#
您可以使用它的
min
和max
方法。如果它的罚款与字符串,那么你也可以这样做。
当你读取数据库操作的数据时,你可以使用
+
和value。它会把你的字符串转换成整数。但是如果你的数据库是mysql的话,要确保你的数据库允许这个大的整数值。我建议你把string作为数据类型。