首页 > 解决方案 > 如何使用 javascript 识别和格式化数字

问题描述

我的问题是由于某种随机原因而发生的,大多数图形库不使用货币的内部化,所以我想要读取并传输到图表的值已经使用我的本地货币格式化,已经尝试过多种方式来解决这个问题,而不是然而,我设法找到了一个可能的和最可能的解决方案,它是这样工作的:

1,00 | 1
10,00 | 10
500,00 | 500
5.000,00 | 5000
70.000,00 | 70000
900.000,00 | 900000
1.000.000,00 | 1000000

特别是当我在字符串中设置这些值时,我想删除以下值中的所有分号和最后两个数字,为​​什么如果我只删除逗号,图形只会读取为 100 或 1000 的值,例如:

1,00 => 1
10,00 => 10

以此类推,必须删除逗号之后的任何数字,并且在开始时只删除点...

一个简短的演示结果如何在我的图表上:

http://jsfiddle.net/Qa2Tx/29/

如果你知道一些方法来格式化这项工作的数字而不触及我当地货币的逗号和点,我会高兴得爆炸,但如果你只能像我上面提到的那样格式化,我会非常高兴,谢谢你两天我正在尝试解决这个问题:D

标签: javascriptjqueryhighcharts

解决方案


我做了一个你可以做什么的小演示。您可以使用该split()功能在,. 这会将值划分为两侧

10,00 => ['10','00']

你可以只针对拆分后的第一部分

这是一个只有一个值的演示

var value = '1.000,00';

console.log(value.split(',')[0]);

此演示还删除.并将值转换为数字

var value = '1.000,00';

console.log(Number(value.split(',')[0].replace(/[^0-9]+/g,"")));

这个演示代表一个值数组

var arr = ['1,00',
'10,00',
'500,00',
'5.000,00',
'70.000,00',
'900.000,00',
'1.000.000,00']

arr.map(value => console.log(Number(value.split(',')[0].replace(/[^0-9]+/g,""))))

希望这可以帮助 :)


推荐阅读