2012-04-09 6 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

それはほとんどのperl、不快に感じています。 – Dykam

+0

単項 '+'を使用して数値に変換するのが好きでない場合は、常に 'parseInt'を使用できます:) – ThiefMaster

+0

50K +のHey Congrats;) – Starx

0

!isNaN(parseInt(myVal, 10))が短いと甘い方法で使用することができます

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

これは16進数も受け入れます。代わりに 'parseInt(myVal、10)'を使用してください。ああ、いつゼロと負の数が数字ではないのか? :p – ThiefMaster

+0

@ThiefMaster、Ok、私の更新をチェックしてください – Starx

0

あなたは非整数や文字列の剰余演算子を使用する場合は、

のいずれか剰余またはNaNが返されます。

function isInt(i) { 
    return i%1===0; 
} 
関連する問題