// remove whitespaces
var input = input.replace(/\s+/g,"");
// check if the input is a valid number
if(isFinite(input) && input != ''){
// do your thing
}
Помните, что isFinite принимает только такие значения, как «20,50», а не «20, 50», как это принято в некоторых странах.Если вам нужна такая гибкость, вам нужно выполнить дополнительную предварительную обработку строк.И с этим решением в качестве тысячи разделителей допускаются только пробелы (например, '100 000').
К сожалению, проверка пустой строки необходима, поскольку isFinite ('') возвращает true.
Вытакже может использовать эту функцию от пользователя CMS (подробное объяснение см .: Проверка десятичных чисел в JavaScript - IsNumeric () )
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}