Formik,是的 - 如何检查是十进制数

HDa*_*yan 9 yup formik

我有一个架构:

const SignupSchema = Yup.object().shape({
  decimal: Yup.number().integer('invalid decimal'),
});
Run Code Online (Sandbox Code Playgroud)

我需要检查数字是否为十进制,但我只Integer在文档中找到

dw_*_*dw_ 20

您可以添加自定义验证测试,例如使用正则表达式。

const SignupSchema = Yup.object().shape({
  decimal: Yup.number().test(
    'is-decimal',
    'invalid decimal',
    value => (value + "").match(/^\d*\.{1}\d*$/),
  ),
});
Run Code Online (Sandbox Code Playgroud)

  • 这在国际场景中不起作用,其中千位和小数分隔符可以是“.”或“,” (2认同)