81

重複の可能性:
変数にJavascriptの数値が含まれているかどうかを確認しますか?

jQueryで変数が整数かどうかを確認するにはどうすればよいですか?

例:

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

URLからIDを取得するために以下を使用しています。

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

しかし、変数が整数であるかどうかを確認したいと思います。

4

3 に答える 3

198

これを試して:

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

$.isNumeric(id)数値であるかどうかをチェック
Math.floor(id) == idし、実際に浮動小数点数ではなく整数値であるかどうかを判断します。float を int に解析すると、元の値とは異なる結果が得られます。int の場合、どちらも同じになります。

于 2012-04-22T18:12:09.943 に答える
49

Here's a polyfill for the Number predicate functions:

"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

All major browsers support these functions, except isNumeric, which is not in the specification because I made it up. Hence, you can reduce the size of this polyfill:

"use strict";

Number.isNumeric = Number.isNumeric ||
    n => n === +n; // all numbers excluding NaN

Alternatively, just inline the expression n === +n manually.

于 2012-04-22T18:29:38.317 に答える
29

jQuery の IsNumeric メソッドを使用します。

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

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

訂正: それは整数を保証しません。これは次のようになります。

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

もちろん、それはjQueryを使用していませんが、ソリューションが機能する限り、jQueryは実際には必須ではないと思います

于 2012-04-22T18:12:17.570 に答える