正确的数字格式检测分隔符

时间:2014-01-30 11:38:47

标签: javascript numbers format

我有

 var value = $120,90
 var value = $1,209.00

目前我用

替换第一个案例
 value = value.replaceAll(",", ".").replaceAll("[^0-9.]*", "");

这给了我正在寻找:整数12090

第二种情况我运行的问题不是这样的。我怎样才能在Javascript中解决这个问题?

3 个答案:

答案 0 :(得分:0)

除非你坚持每个人都输入美元和美分,否则我无法看到你如何使算法有效。我能想到的唯一选择是使用locale来确定数字分隔符。

答案 1 :(得分:0)

你可以使用这个帖子的答案吗?

How can I remove the decimal part from JavaScript number?

他们使用Math.floor()(向下舍入),Math.ceil()(向上舍入)或Math.round()(舍入到最接近的整数)。

答案 2 :(得分:0)

您可以修改regexp。

value  = value.replace(/,/g, ".").replace(/^\D|\.(?!\d*$)/g, "");

首先将','替换为'。'第二个替换字符串开头的非数字符号,所有点除了最后一个用空字符串。然后使用parseFloat

确保完全最好为数据输入创建模板,并且不允许用户以无效格式输入值。