在JavaScript中使用逗号小数分隔符解析数字

时间:2013-08-23 14:21:15

标签: javascript validation

我使用此函数检查值是否为数字:

function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}

我的程序需要使用德语值。我们使用逗号作为小数分隔符而不是点,因此该函数不起作用。

我试着这样做:

n.replace(",",".")

但它似乎也不起作用。我尝试使用的确切功能是:

function isNumber(n) {
    n=n.replace(",",".");
    return !isNaN(parseFloat(n)) && isFinite(n);
}

如果我的陈述不够明确,则该数字看起来像9.000,28而不是通常的9,000.28

3 个答案:

答案 0 :(得分:20)

您需要先在千位分隔符中替换(删除)点,然后处理小数:

function isNumber(n) {
    'use strict';
    n = n.replace(/\./g, '').replace(',', '.');
    return !isNaN(parseFloat(n)) && isFinite(n);
}

答案 1 :(得分:15)

var number = parseFloat(obj.value.replace(",",""));

你可能也想要这样做......

obj.value = number.toLocaleString('en-US', {minimumFractionDigits: 2});

答案 2 :(得分:1)

我相信做到这一点的最佳方法就是简单地使用toLocaleString方法。 例如,我住在巴西,在这里我们用逗号作为小数点分隔符。然后我可以这样做:

var number = 10.01;
console.log(number)
// log: 10.01

console.log(number.toLocaleString("pt-BR"));
// log: 10,01