2012-04-09 5 views
1

사용자가 JavaScript로 텍스트 필드에 int를 입력하는 방법을 파악하려고합니다. 현재, 나는 다음이 : 나는 텍스트 필드에 123를 입력하면JavaScript에서 Int 값 확인

var myVal = $("#myField").val(); 
if (isInt(myVal)) { 
    alert("Awesome!"); 
} else { 
alert("No Good"); 
} 

function isInt(i) { 
    if ((i != null) && (i != undefined) && (i.length > 0)) { 
     alert(typeof i); 
     return (typeof i == 'number' && /^-?\d+$/.test(i + '')); 
    } 
    return false; 
} 

, 내가 typeof i은 "문자열"입니다 것으로 나타났습니다. 이런 종류의 검증을 수행하는 방법을 잘 모르겠습니다. 누군가가 내게 알려 줄 수 있습니까? 나는 이것을봤을 때 나는 어떤 성공도하지 못했다는 것에 놀랐다.

답변

4
​function isInt(myVal) { 
    return /^[+-]?\d+$/.test(myVal); 
} 
2

당신은 단순히 !isNaN(+myVal) 또는 여기

+1

거의 펄, 구역질 느낀다. – Dykam

+0

단항'+'을 사용하여 숫자로 변환하는 것이 싫다면'parseInt'를 사용할 수 있습니다 :) – ThiefMaster

+0

50K +에서의 축하;) – Starx

0

!isNaN(parseInt(myVal, 10))이 짧고 달콤한 방식으로 사용할 수 있습니다

function isInt(n) { 
    return !isNaN(parseFloat(n)) && isFinite(n); 
} 
+0

16 진수도 사용할 수 있습니다. 대신에'parseInt (myVal, 10)'을 사용하십시오. 오, 그리고 언제부터 0과 음수가 숫자가 아닌가? : p – ThiefMaster

+0

@ThiefMaster, Ok, 내 업데이트 확인 – Starx

0

가 아닌 정수 또는 문자열의 나머지 연산자를 사용하는 경우,

중 하나 나머지 또는 NaN이 반환됩니다.

function isInt(i) { 
    return i%1===0; 
}