繁体   English   中英

是的 - 逗号小数分隔符而不是点

[英]Yup - comma decimal separator instead of dot

我正在使用像这样的简单Yup模式来验证 React Native 中的 Formik 输入字段:

Yup.number().positive()

我的用户将使用逗号分隔小数,因此我需要架构为1.35之类的值抛出错误并接受1,35之类的值。 由于matches方法仅适用于字符串,因此似乎无法使用正则表达式。

在修改了一些transform之后,这最终对我有用:

Yup.number()
   .transform((_, value) => {
      if (value.includes('.')) {
        return null;
      }
      return +value.replace(/,/, '.');
    })
    .positive(),

我不知道 Yup 中的 function 能够解析不同格式的数字。 但是一种简单的方法是将逗号转换/替换为空,使其变为数字

number().transform((o, v) => parseInt(v.replace(/,/g, '')))

这样你的数字10,000就变成了10000并且确实是一个有效的数字。

另一方面10.000停留10.000并且无效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM