提问者:小点点

Yup-逗号小数分隔符代替点号


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

Yup.number().positive()

我的用户将对小数使用逗号分隔符,因此我需要模式为1.35这样的值抛出错误,并接受1,35这样的值。 由于matches方法仅可用于字符串,因此使用正则表达式似乎是不合适的。


共1个答案

匿名用户

我不知道在Yup中有一个函数能够解析不同格式的数字。 但一个简单的方法是将逗号转换/替换为零,使它变成一个数字

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

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

另一方面,10.000保留10.000,并且无效。