- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数値入力チェックに、isNaNを使用しない理由)
数値入力チェックに使用しない理由
このQ&Aのポイント
- JavaScriptの数値入力チェックでisNaNを使用しない理由
- 数値入力チェックの不具合と修正方法
- isNaNの使用に関する疑問点と対象ブラウザの制約
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
すでに試されているようですが、16進数や指数表記での入力を禁止させたかったのだと思います。 NNはわかりませんが、Windows+IEでは16進数・指数などは数値として認識されるようですよ。 ちなみに、WindowsXP + WSHで試した結果は次のとおりです。 -------------------- var s; s = "100"; WScript.Echo(isNaN(s)); //false(数値) s = "-100.0"; WScript.Echo(isNaN(s)); //false(数値) s = "0xA2"; WScript.Echo(isNaN(s)); //false(数値) s = "2^2"; WScript.Echo(isNaN(s)); //true(数値ではない) s = "AAA"; WScript.Echo(isNaN(s)); //true(数値ではない) s = "1.25E+5"; WScript.Echo(isNaN(s)); //false(数値) s = "12,345,678.123"; WScript.Echo(isNaN(s)); //true(数値ではない)
お礼
ご回答ありがとうございました。 IEでは、16進と指数表示は数値扱いですね。 # 後続の処理で範囲チェックが入っているので、 # 16進は数値以外と勘違いしてしまいました。 # isNaN==false で範囲外だと、「~は最小nまで入力可能です」 # とメッセージがでるようになっています。 # なぜか、0X1は1以下と判定されます^^;