Разбор чисел с разделителем запятой в 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
, если мое утверждение недостаточно ясное.
Ответы
Ответ 1
Вам нужно сначала заменить (удалить) точки в разделителе тысяч, а затем позаботиться о десятичной дроби:
function isNumber(n) {
'use strict';
n = n.replace(/\./g, '').replace(',', '.');
return !isNaN(parseFloat(n)) && isFinite(n);
}
Ответ 2
var number = parseFloat(obj.value.replace(",",""));
Возможно, вам также захочется, чтобы это было другим путем...
obj.value = number.toLocaleString('en-US', {minimumFractionDigits: 2});
Ответ 3
Попробуйте это
function isNumber(n) {
n=n.replace(/,/, '');
return !isNaN(parseFloat(n)) && isFinite(n);
}