Проверьте, что переменная является числом - PullRequest
29 голосов
/ 30 августа 2009

Как я могу проверить, что переменная является числом, целым или строковым числом?

В PHP я мог бы сделать:

if (is_int($var)) {
    echo '$var is integer';
}

Или:

if (is_numeric($var)) {
    echo '$var is numeric';
}

Как мне это сделать в jQuery / JavaScript?

Ответы [ 10 ]

40 голосов
/ 30 августа 2009

Функция javascript isNaN(variable) должна помочь. Возвращает true, если данные не являются числом.

25 голосов
/ 30 августа 2009

Я бы пошел с

isFinite(String(foo))

См. этот ответ для объяснения почему. Если вы хотите принимать только целочисленные значения, смотрите здесь .

5 голосов
/ 14 июля 2014

Я довольно новичок в javascript, но похоже, что typeof(blah) позволяет проверить, является ли что-то числом (оно не говорит true для строк). Я знаю, что ОП попросил строки + цифры, но я подумал, что это может стоить документировать для других людей.

например:

function isNumeric(something){
    return typeof(something) === 'number';
}

Вот документы

и вот несколько запусков консоли того, что производит typeof:

typeof(12);
"number"
typeof(null);
"object"
typeof('12');
"string"
typeof(12.3225);
"number"  

одна небольшая странность, о которой я знаю, это

typeof(NaN);
"number"

но это не было бы javascript без чего-то подобного, верно?!

1 голос
/ 28 марта 2018

Вы должны использовать:

if(Number.isInteger(variable))
   alert("It is an integer");
else
   alert("It is not a integer");

Вы можете найти ссылку в: Number.isInteger ()

1 голос
/ 14 июля 2014

Вы должны использовать:

var x = 23;
var y = 34hhj;

isNaN(x); 
isNaN(y); 

Он вернет true, если его строка, и false, если его число.

1 голос
/ 30 августа 2009
function isNumeric( $probe )
{
    return parseFloat( String( $probe ) ) == $probe;
}
1 голос
/ 30 августа 2009

См. isNan

РЕДАКТИРОВАТЬ: Пожалуйста, посмотрите на то, что Кристоф предложил выше. Имеет смысл использовать isFinite как предложено.

0 голосов
/ 23 сентября 2016

Вы должны использовать: $.isNumeric( i )

jQuery.isNumeric API

0 голосов
/ 29 февраля 2016

Имейте в виду, что пустые строки '' и ' ' будут считаться числом isNaN и isFinite.

0 голосов
/ 20 августа 2015

Вы должны использовать

простой способ проверить, является ли данное значение числом, используя условие if

function isInteger(value)      
{       
    num=value.trim();         
    return !(value.match(/\s/g)||num==""||isNaN(num)||(typeof(value)=='number');        
}

он вернет true, если значение, которое мы передаем, является целым числом.

solved for     
value=""      //false null     
value="12"    //true only integers       
value="a"     //false     
value=" 12"   //false      
value="12 "   //false         
value=" "     //false space        
value="$12"   //false special characters 
value="as12"    //false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...