Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取本年度及以上的Formik验证_Javascript_Reactjs_Formik_Yup_React Material - Fatal编程技术网

Javascript 获取本年度及以上的Formik验证

Javascript 获取本年度及以上的Formik验证,javascript,reactjs,formik,yup,react-material,Javascript,Reactjs,Formik,Yup,React Material,我需要使用Formik进行验证,输入应该是currentYear和up const currentYear = new Date().getFullYear(); expiryYear: yup .string() .required('Select expiry year') .min(4, `Invalid year format (Example: ${currentYear + 4})`) .max(4, `Invalid year format (Example: ${curren

我需要使用Formik进行验证,输入应该是currentYear和up

 const currentYear = new Date().getFullYear();

expiryYear: yup
.string()
.required('Select expiry year')
.min(4, `Invalid year format (Example: ${currentYear + 4})`)
.max(4, `Invalid year format (Example: ${currentYear + 4})`)
.when('startDate', (currentYear, schema) => currentYear && schema.min(currentYear)),
请试试这个:

yup.date()
.min(新日期().getFullYear(),
“年度必须为当前年度或大于当前年度”);
检查

如果要验证年份长度,可以使用以下方法:

yup.number()
.test('len','必须正好是4个字符',
val=>val&&val.toString().length==4.min(新日期().getFullYear());

这将首先验证年份长度,然后检查它是否大于或等于当前年份。

谢谢。但是,当我键入
20
时,它输出的expiryYear必须是
日期
类型,但最终值是:
无效日期
(从值
“20”
转换而来)。这个错误消息来自哪里?你能为这个添加一个额外的验证器吗?谢谢我使用
type=“text”
的方式是您希望以何种形式输入?请分享你的代码,我想我能解决它。您想验证您给定的年份是否也有4位数字吗?嗨!是的,请加上验证。。请检查此项。您好,请首先将您的
textfield
text
更改为
number
,然后按照我在回答中添加的上述代码进行操作。谢谢。你能不能也定个月。我想它已经修好了。但是我有一个问题,当我输入
2
时,它会失效,应该是
02
。有没有一种方法,如果我写
2
,它会自动转换为
02
?谢谢