Reg Ex:删除数字末尾的多余零和小数点

时间:2016-07-11 15:56:24

标签: javascript regex

从数据源中我得到许多需要格式化的数字才能在浏览器中显示。

有些数字显示为尾随零,有些数字后面带有一个尾随小数点,后面没有任何内容。

以下是我使用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*$

对于让我头疼的事情的任何帮助都将不胜感激。

非常感谢...

1 个答案:

答案 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,但有时会有一个正常运行的函数。