Простая проверка номера с использованием JavaScript / jQuery - PullRequest
4 голосов
/ 14 апреля 2011

Есть ли в JavaScript / jQuery какой-либо простой способ проверить, является ли переменная числом или нет (желательно без плагина)? Я хочу предупредить, является ли переменная числом или нет.

Заранее спасибо ... :)

Ответы [ 5 ]

19 голосов
/ 14 апреля 2011

Я бы не рекомендовал функцию isNaN для определения чисел из-за приведения типа Java Script.

Ex:

isNaN(""); // returns false (is number), a empty string == 0
isNaN(true); // returns false (is number), boolean true == 1
isNaN(false); // returns false (is number), boolean false == zero
isNaN(new Date); // returns false (is number)
isNaN(null); // returns false (is number), null == 0 !!

Вам также следует помнить, что isNaN вернет false (является числом) для чисел с плавающей запятой.

isNaN('1e1'); // is number
isNaN('1e-1'); // is number

Я бы рекомендовал использовать эту функцию вместо:

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}
4 голосов
/ 14 апреля 2011

Проверка номера с помощью функции isNaN

var my_string="This is a string";
if(isNaN(my_string)){
document.write ("this is not a number ");
}else{document.write ("this is a number ");
}

или

Проверьте, является ли номер недопустимым:

<script type="text/javascript">


    document.write(isNaN(5-2)+ "<br />");
    document.write(isNaN(0)+ "<br />");
    document.write(isNaN("Hello")+ "<br />");
    document.write(isNaN("2005/12/12")+ "<br />");

</script>

Вывод кода выше будет:

false
false
true
true 
1 голос
/ 12 ноября 2014

Можно использовать ниже код для этого.Я бы не стал полностью полагаться на isNaN ().isNaN показал противоречивые результаты для меня (например, - isNaN не обнаружит пробелы.).

//Event of data being keyed in to textbox with class="numericField".
$(".numericField").keyup(function() {
    // Get the non Numeric char that was enetered
    var nonNumericChars = $(this).val().replace(/[0-9]/g, '');                                  
    if(nonNumericChars.length > 0)
        alert("Non Numeric Data entered");
});
0 голосов
/ 14 апреля 2011

использовать стандартные функции JavaScript

isNaN('9')// this will return false
isNaN('a')// this will return true
0 голосов
/ 14 апреля 2011
function isDigit(num) {
    if (num.length>1){return false;}
    var string="1234567890";
    if (string.indexOf(num)!=-1){return true;}
    return false;
}

Вам нужно перебрать строку и вызвать эту функцию для каждого символа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...