Yup.number()。test('len','必须正好是5个字符',val => val && val.toString()。length === 5)
它无法正常工作。如果此字段为空,则给出“必须正好为5个字符”,但不应显示任何内容。
答案 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))