'yup - allow two digits after comma, minimum and maximum for a decimal

const validationSchema = yup.object({
        amount: yup.number().positive().min(5, 'minimum 5').max(10, 'maximum 10'),
    });

How is possible to add validation for decimal with two digits after comma?



Solution 1:[1]

solved like this:

let patternTwoDigisAfterComma = /^\d+(\.\d{0,2})?$/;
const commonStringValidator = yup
  .number()
  .positive()
  .test(
    "is-decimal",
    "The amount should be a decimal with maximum two digits after comma",
    (val: any) => {
      if (val != undefined) {
        return patternTwoDigisAfterComma.test(val);
      }
      return true;
    }
  )
  .min(5, "minimum 5")
  .max(10, "maximum 10")
  .required("Is required");

const validationSchema = yup.object({
  amount: commonStringValidator,
});

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Alex