可能重复:
Check if a variable contains a numerical value in Javascript?
如何在jQuery中检查变量是否为整数?
示例:
if (id == int) { // Do this }
我使用以下内容从网址获取ID。
var id = $.getURLParam("id");
但我想检查变量是否是整数。
答案 0 :(得分:175)
试试这个:
if(Math.floor(id) == id && $.isNumeric(id))
alert('yes its an int!');
$.isNumeric(id)
检查它是否为数字
然后Math.floor(id) == id
将确定它是否真的是整数值而不是浮点数。如果它是一个浮点解析它到int将给出与原始值不同的结果。如果是int,则两者都是相同的。
答案 1 :(得分:49)
这是Number
谓词函数的填充:
"use strict";
Number.isNaN = Number.isNaN ||
n => n !== n; // only NaN
Number.isNumeric = Number.isNumeric ||
n => n === +n; // all numbers excluding NaN
Number.isFinite = Number.isFinite ||
n => n === +n // all numbers excluding NaN
&& n >= Number.MIN_VALUE // and -Infinity
&& n <= Number.MAX_VALUE; // and +Infinity
Number.isInteger = Number.isInteger ||
n => n === +n // all numbers excluding NaN
&& n >= Number.MIN_VALUE // and -Infinity
&& n <= Number.MAX_VALUE // and +Infinity
&& !(n % 1); // and non-whole numbers
Number.isSafeInteger = Number.isSafeInteger ||
n => n === +n // all numbers excluding NaN
&& n >= Number.MIN_SAFE_INTEGER // and small unsafe numbers
&& n <= Number.MAX_SAFE_INTEGER // and big unsafe numbers
&& !(n % 1); // and non-whole numbers
所有主流浏览器都支持这些功能,isNumeric
除外,因为我编写了这些功能,因此不在规范中。因此,您可以减小此填充的大小:
"use strict";
Number.isNumeric = Number.isNumeric ||
n => n === +n; // all numbers excluding NaN
或者,只需手动内联n === +n
表达式。
答案 2 :(得分:25)
使用jQuery的IsNumeric方法。
http://api.jquery.com/jQuery.isNumeric/
if ($.isNumeric(id)) {
//it's numeric
}
更正:这不会确保整数。这会:
if ( (id+"").match(/^\d+$/) ) {
//it's all digits
}
当然,这不使用jQuery,但我认为只要解决方案有效,jQuery实际上并不是强制性的