Formik,Yup-如何检查小数

时间:2019-12-10 14:44:12

标签: formik yup

我有一个模式:

const SignupSchema = Yup.object().shape({
  decimal: Yup.number().integer('invalid decimal'),
});

我需要检查数字是否为十进制,但我在文档中仅发现Integer

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

const digitsOnly = (value: string) => /^\d*[\.{1}\d*]\d*$/.test(value) || value.length === 0



const schema = yup.object().shape({
    inputEntry: yup
            .string()
            .test('inputEntry', 'The field should have digits only', digitsOnly)
});

以上代码用于在输入字段中只允许小数、整数和空值。