我遇到了一个问题:我有一个包含小数的字符串,但是用户可以用两种方式来写,用点,或者用逗号。
0,32
0.32
不同的国家使用不同的方式来区分数字的积分部分和小数部分。
所以我决定只要发现有逗号,就将字符串转换为使用点。
我使用了一个简单的正则表达式来做到这一点。
let value = '0,32'
value = value.replace(/,/g, '.')
//value is now '0.32'
你可以用replace(/\./g, ',') (注意在. 前面的\ ,以逃避它,因为它是正则表达式中的一个特殊字符)来做相反的事情
正则表达式中的g 标志确保如果有多个逗号(或点,在第二个例子中)的实例,它们都被转换。
这并不适用于我们的用例,我认为我们需要做更多的验证来检查我们输入的完整性,但这是一个开始。
在我的例子中,在做完这个替换后,我调用了parseFloat(value)来从字符串中获取浮点数,然后我用toFixed(2)将小数点限制为2。
value = parseFloat(value).toFixed(2)