确定JavaScript的值是否是一个“整数”?

可能重复:
检查一个variables是否包含Javascript中的数值?

如何检查variables是否是jQuery中的整数?

例:

if (id == int) { // Do this } 

我使用以下从URL获取ID。

 var id = $.getURLParam("id"); 

但是我想检查一下variables是否是一个整数。

尝试这个:

 if(Math.floor(id) == id && $.isNumeric(id)) alert('yes its an int!'); 

$.isNumeric(id)检查是否是数字
Math.floor(id) == id然后将确定它是否真的是整数值而不是浮点数。 如果它是一个浮点parsing到int会给出一个不同于原来的值的结果。 如果是int,那么两者将是相同的。

@bardiir使用类似的方法来检查一个值是否是数字。 但是这种方法要简单得多。

 /* I just realized that +n === parseInt(n) won't filter strings. Hence I modified it. At least now it doesn't require any extra function calls. */ function isInt(n) { return +n === n && !(n % 1); } 

+n强制转换为数字。 然后我们使用严格的等式( === )来检查它是否是一个整数。 简单而高效。

编辑:好像很多人需要检查数字types,所以我会分享我经常使用的function列表:

 /* -9007199254740990 to 9007199254740990 */ function isInt(n) { return +n === n && !(n % 1); } /* -128 to 127 */ function isInt8(n) { return +n === n && !(n % 1) && n < 0x80 && n >= -0x80; } /* -32768 to 32767 */ function isInt16(n) { return +n === n && !(n % 1) && n < 0x8000 && n >= -0x8000; } /* -2147483648 to 2147483647 */ function isInt32(n) { return +n === n && !(n % 1) && n < 0x80000000 && n >= -0x80000000; } /* 0 to 9007199254740990 */ function isUint(n) { return +n === n && !(n % 1) && n >= 0; } /* 0 to 255 */ function isUint8(n) { return +n === n && !(n % 1) && n < 0x100 && n >= 0; } /* 0 to 65535 */ function isUint16(n) { return +n === n && !(n % 1) && n < 0x10000 && n >= 0; } /* 0 to 4294967295 */ function isUint32(n) { return +n === n && !(n % 1) && n < 0x100000000 && n >= 0; } /* Any number including Infinity and -Infinity but not NaN */ function isFloat(n) { return +n === n; } /* Any number from -3.4028234e+38 to 3.4028234e+38 (Single-precision floating-point format) */ function isFloat32(n) { return +n === n && Math.abs(n) <= 3.4028234e+38; } /* Any number excluding Infinity and -Infinity and NaN (Number.MAX_VALUE = 1.7976931348623157e+308) */ function isFloat64(n) { return +n === n && Math.abs(n) <= 1.7976931348623157e+308; } 

希望这对某个人有用。

使用jQuery的IsNumeric方法。

http://api.jquery.com/jQuery.isNumeric/

 if ($.isNumeric(id)) { //it's numeric } 

更正:这不会确保一个整数 。 这个会:

 if ( (id+"").match(/^\d+$/) ) { //it's all digits } 

当然,这并不使用jQuery,但我认为只要解决scheme有效,jQuery实际上并不是强制性的