我正在使用如下简单的Yup模式来验证React Native中的Formik输入字段:
Yup.number().positive()
我的用户将对小数使用逗号分隔符,因此我需要模式为1.35
这样的值抛出错误,并接受1,35
这样的值。 由于matches
方法仅可用于字符串,因此使用正则表达式似乎是不合适的。
我不知道在Yup中有一个函数能够解析不同格式的数字。 但一个简单的方法是将逗号转换/替换为零,使它变成一个数字
number().transform((o, v) => parseInt(v.replace(/,/g, '')))
这样,您的数字10000
就变成了10000
,并且确实是一个有效的数字。
另一方面,10.000
保留10.000
,并且无效。