[英]How to convert floating point decimal separator from dot to comma in Javascript
[英]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.