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