使用Yup验证以检查号码长度

时间:2019-11-19 18:26:31

标签: javascript reactjs validation redux yup

Yup.number()。test('len','必须正好是5个字符',val => val && val.toString()。length === 5)

它无法正常工作。如果此字段为空,则给出“必须正好为5个字符”,但不应显示任何内容。

2 个答案:

答案 0 :(得分:0)

尝试将nullable()添加到您的yup模式和数字的正则表达式,请尝试如下操作:

const regExp = /\b\d{5}\b/;

Yup.string().matches(regExp, {message: 'Must be exactly 5 numbers', excludeEmptyString: true})

答案 1 :(得分:0)

添加另一个检查,如果其为空/空/未定义,则返回true

Yup.number().test('len', 'Must be exactly 5 characters', val => !val || (val && val.toString().length === 5))