• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数値入力チェックに、isNaNを使用しない理由)

数値入力チェックに使用しない理由

このQ&Aのポイント
  • JavaScriptの数値入力チェックでisNaNを使用しない理由
  • 数値入力チェックの不具合と修正方法
  • isNaNの使用に関する疑問点と対象ブラウザの制約

質問者が選んだベストアンサー

  • ベストアンサー
  • sawagani
  • ベストアンサー率73% (19/26)
回答No.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(数値ではない)

ctrlzr
質問者

お礼

ご回答ありがとうございました。 IEでは、16進と指数表示は数値扱いですね。 # 後続の処理で範囲チェックが入っているので、 # 16進は数値以外と勘違いしてしまいました。 # isNaN==false で範囲外だと、「~は最小nまで入力可能です」 # とメッセージがでるようになっています。 # なぜか、0X1は1以下と判定されます^^;

関連するQ&A