Ответ 1
Я бы пошел с
isFinite(String(foo))
См. этот ответ для объяснения причин. Если вы хотите принимать только целые значения, смотрите здесь.
Как проверить, что переменная представляет собой число, либо целое число, либо цифру строки?
В PHP я мог бы сделать:
if (is_int($var)) {
echo '$var is integer';
}
Или:
if (is_numeric($var)) {
echo '$var is numeric';
}
Как я могу сделать это в jQuery/JavaScript?
Я бы пошел с
isFinite(String(foo))
См. этот ответ для объяснения причин. Если вы хотите принимать только целые значения, смотрите здесь.
Функция javascript isNaN(variable)
должна делать трюк. Он возвращает true, если данные не являются числом.
function isNumber( input ) {
return !isNaN( input );
}
isNumber({}) // false
isNumber('13') // true
isNumber(13) // true
isNumber('test') // false
Я новичок в 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, если что-то вроде этого??
См. isNan
РЕДАКТИРОВАТЬ: Пожалуйста, посмотрите, что предложил Кристоф выше. Имеет смысл использовать isFinite, как было предложено.
function isNumeric( $probe )
{
return parseFloat( String( $probe ) ) == $probe;
}
Вы должны использовать:
var x = 23;
var y = 34hhj;
isNaN(x);
isNaN(y);
Он вернет true, если его строка и false, если это число.
Вы должны использовать:
if(Number.isInteger(variable))
alert(variable+variable);
else
alert("It is not a integer");
вы можете найти ссылку в: Number.isInteger()
Вы должны использовать
простой способ проверить, является ли заданное значение числом, используя "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
Помните, что пустая строка ''
и ' '
будет считаться номером на isNaN
и isFinite
.
Вы должны использовать: $.isNumeric( i )