在JavaScript中使用逗号-十进制分隔符分析数字



我用这个函数来检查一个值是否是数字:

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

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

function isNumber(n) {
    'use strict';
    n = n.replace(/./g, '').replace(',', '.');
    return !isNaN(parseFloat(n)) && isFinite(n);
}
var number = parseFloat(obj.value.replace(",",""));

你可能也希望这一切朝着另一个方向发展。。。

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

我认为最好的方法就是简单地使用toLocaleString方法。例如,我住在巴西,这里有逗号作为小数分隔符。然后我可以做:

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

最新更新