我用这个函数来检查一个值是否是数字:
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