从数据源中我得到许多需要格式化的数字才能在浏览器中显示。
有些数字显示为尾随零,有些数字后面带有一个尾随小数点,后面没有任何内容。
以下是我使用Javascript的RegEx实现尝试实现的示例:
130.0000 = 130
132.0050 = 132.005
16.9000 = 16.9
140000000.00 = 140000000
132. = 132
89.0 = 89
90.0 = 90
9000.00 = 9000
99.0 = 99
99.00500 = 99.005
70 = 70 //fail, as it matches the zeros at the end if there's no decimal point
700 = 700 //fail, as it matches the zeros at the end if there's no decimal point
以下RegEx正确匹配所有内容,但最后两个测试除外,其中小数点前的任何零也匹配:
[\.0]0*$
对于让我头疼的事情的任何帮助都将不胜感激。
非常感谢...
答案 0 :(得分:4)
最强大的功能是parseFloat
:
const values = [
'130.0000',
'132.0050',
'16.9000',
'140000000.00',
'132.',
'89.0',
'90.0',
'9000.00',
'99.0',
'99.00500',
'70',
'700'
];
values.map(parseFloat).forEach(it => console.log(it));
然后,您可以使用任何Number
方法获得特定的精度,舍入,重新格式化等。
虽然正则表达式可以many unholy things,但有时会有一个正常运行的函数。