JavaScriptでフォームの入力値などが数値(整数値)とみなせるかどうかのチェックを行うサンプルです。
Program
フォームの入力値=文字列なので、数値に変換しても変わりないか?を基準にした場合
function isSuchi(s)
{
var n = parseInt(s, 10);
return ! isNaN(n) && s == String(n);
}
isSuchi("2345"); // → true
isSuchi("-2345"); // → true
isSuchi("002345"); // → false
isSuchi("2a3b4c5"); // → false
isSuchi("テスト"); // → false
isSuchi("0xff"); // → false
Demo
結果:
Memo
isNaN が近い動きをしますが、数値とみなせたら、先頭に0が余分についていても、16進数でもfalseとなります。
isNaN('asfdsadfa'); // true
isNaN('098765'); // false
isNaN(098765); // false
isNaN(98765); // false
isNaN(0xff); // false
isNaN('0xff'); // false