// 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 (подробное объяснение см: Validate decimal numbers in JavaScript - IsNumeric())!
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
http://stackoverflow.com/questions/3885817/how-to-check-if-a-number-is-float-or-integer –
еще лучше: http://stackoverflow.com/questions/18082/validate-numbers-in-javascript-isnumeric – Lukas
показать нам функцию javascript, которую вы пробовали .. – Vijay