programing

자바스크립트 값이 "정수"인지 확인하시겠습니까?

topblog 2023. 10. 10. 20:02
반응형

자바스크립트 값이 "정수"인지 확인하시겠습니까?

중복 가능:
자바스크립트에서 변수에 수치가 포함되어 있는지 확인?

jQuery에서 변수가 정수인지 확인하려면 어떻게 해야 합니까?

예:

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

저는 URL에서 아이디를 얻기 위해 다음과 같은 방법을 사용하고 있습니다.

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

하지만 변수가 정수인지 확인하고 싶습니다.

시도해 보기:

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

$.isNumeric(id)숫자인지 여부를 확인합니다.
Math.floor(id) == id그러면 플로트가 아닌 정수 값인지 여부를 확인합니다.플로트 파싱이 int인 경우 원래 값과 다른 결과를 제공합니다.만약 int이면 둘 다 똑같을 것입니다.

여기에 다음과 같은 폴리필이 있습니다.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수기로

jQuery의 IsNumeric 메서드를 사용합니다.

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

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

정정: 그것은 정수를 보장하지 않을 것입니다.이 경우:

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

물론 jQuery를 사용하지는 않지만 솔루션이 작동하는 한 jQuery가 실제로 의무 사항은 아닌 것 같습니다.

언급URL : https://stackoverflow.com/questions/10270648/determine-if-javascript-value-is-an-integer

반응형