是的验证接受超过 0 个输入数字。喜欢的用户可以输入 0.001 或 0.0001。但不仅是0

Yup validation to accept more than 0 input digit. Like user can enter 0.001 or 0.0001. But not only 0

我正在做一个项目,在管理面板上,医生可以为他们的治疗设置佣金。但它只能是 2 位数长。但佣金不能为 0。它可以是 0.01 或 0.001 的任何值。 我已经使用 formik 和 yup 创建了一个表单。但是不知道如何为这项工作设置输入字段。 我试过并搜索过,但没有找到任何解决方案。

是的验证

  commission: Yup.string()
      .required()
      .matches(/^[0-9]+$/, "Commission should contain only digits")
      // .min(1, 'Must be exactly 1 digits')
      .max(2, "Commission should not be more than 2 digits"),

输入字段代码

<div className="form-group">
                        <label>
                          Commission(%) <span className="text-danger">*</span>{" "}
                        </label>
                        <input
                          type="text"
                          className="form-control"
                          name="commission"
                          value={formik.values.commission}
                          onChange={formik.handleChange}
                          onBlur={formik.handleBlur}
                          min="0.01"
                        ></input>
                        {formik.touched.commission &&
                        formik.errors.commission ? (
                          <div className="err">{formik.errors.commission}</div>
                        ) : null}
                      </div>```


将您的 yup 验证更新为:

commission: Yup.number()
      .required()
      .moreThan(0, 'commision should not be zero or less than zero')
      .lessThan(100, "Commission should not be more than 2 digits"),

同时更改输入字段类型:

<input
     type='number'
     ...
   />