Подтвердить что ты не робот

Проверьте, что переменная является числом

Как проверить, что переменная представляет собой число, либо целое число, либо цифру строки?

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

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

Или:

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

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

4b9b3361

Ответ 1

Я бы пошел с

isFinite(String(foo))

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

Ответ 2

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

Ответ 3

function isNumber( input ) {
    return !isNaN( input );
}

isNumber({}) // false 

isNumber('13') // true

isNumber(13) // true

isNumber('test') // false

Ответ 4

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

например:

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, если что-то вроде этого??

Ответ 5

См. isNan

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

Ответ 6

function isNumeric( $probe )
{
    return parseFloat( String( $probe ) ) == $probe;
}

Ответ 7

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

var x = 23;
var y = 34hhj;

isNaN(x); 
isNaN(y); 

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

Ответ 8

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

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

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

Ответ 9

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

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

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

Ответ 10

Помните, что пустая строка '' и ' ' будет считаться номером на isNaN и isFinite.