如何检查一个变量是数字,可以是整数或字符串数字?
在PHP中,我可以这样做:
if (is_int($var)) {
echo '$var is integer';
}
或者:
if (is_numeric($var)) {
echo '$var is numeric';
}
如何在jQuery / JavaScript中实现此功能?
如何检查一个变量是数字,可以是整数或字符串数字?
在PHP中,我可以这样做:
if (is_int($var)) {
echo '$var is integer';
}
或者:
if (is_numeric($var)) {
echo '$var is numeric';
}
如何在jQuery / JavaScript中实现此功能?
JavaScript函数isNaN(variable)
可以解决问题。它返回true,如果数据不是数字。
isNaN(new Number(variable))
。请注意,如果您希望将代码限制为整数,则 parseInt()
将返回 NaN
(可通过 isNaN()
进行测试)。但要注意,parseInt()
会快乐地忽略字符串末尾的非数字字符。 - Shog9'infinity'
;最好使用 isFinite(String(foo))
。 - ChristophisFinite(null) === true
- Ryan KirkmanisFinite(String(" ")) == isFinite(String("\t")) == isFinite(String("")) == true
。请参见链接的答案。 - cdosbornNumber.isFinite()
是你想要的。它能正确处理null
和''
。 - dlsso我对JavaScript还比较陌生,但是似乎typeof(blah)
可以用来检查某个东西是否为数字(如果是字符串则返回false)。虽然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就不会是 JavaScript了,对吧?!
typeof(something) == 'number'
比较符号更符合JS的风格。使用==
而不是===
。只有在你真正需要时才使用===
。 - Adam Chalcraft===
,如果你习惯使用 ==
,在某些时候会遇到一些奇怪的问题。在这种情况下,没有进行类型强制转换,因此无论如何都是一个相当无关紧要的问题。如果您想对此进行教育性(同时也很有趣)的演讲,请查看詹姆斯·米肯斯的《To wash it all away》http://scholar.harvard.edu/files/mickens/files/towashitallaway.pdf。 - JonnyRaa您应该使用:
if(Number.isInteger(variable))
alert("It is an integer");
else
alert("It is not a integer");
您可以在以下网址中找到参考文档: Number.isInteger()
function isNumeric( $probe )
{
return parseFloat( String( $probe ) ) == $probe;
}
你应该使用:
var x = 23;
var y = 34hhj;
isNaN(x);
isNaN(y);
typeof 运算符返回一个字符串,指示未计算操作数的类型。
const num = 42;
console.log(typeof num === "number"); // expected return true
if(typeof num === "number"){
console.log("This is number")
}
console.log(typeof 42);
// expected output: "number"
console.log(typeof 'blubber');
// expected output: "string"
console.log(typeof true);
// expected output: "boolean"
console.log(typeof undeclaredVariable);
// expected output: "undefined"
''
和' '
将被isNaN
和isFinite
视为数字。你应该使用
简单的方法通过使用“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