![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
JavaScriptの数値入力チェックに、isNaNを使用しない理由があれば、ご教授願います。
経緯は以下のとおりです。
数値項目に、"1-1","1-1-"等、数値とみなされない入力をされるとエラーになるという不具合が発生しています。
ソースの該当箇所を見たところ以下のようになっていました。
//if(isNaN(getInputValue(elem_name))){
if((getInputValue(elem_name)).match(/[^\-\.0-9]/g)){
わざわざisNaNをコメントして、"-",".",1~9 の入力のみを可能にしています。
修正した担当者は既にいないため、聞くことは出来ません。
対象ブラウザは、IE6, IE5.5, NN6.2 であるため、isNaNが使用できないことはありません。
isNaNの不具合か何かがあるのでしょうか?
# 0x10:16進が通っちゃうとか(通りませんでした)
# 2^2:指数表示が通っちゃうとか(通りませんでした)
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(数値ではない)
ご回答ありがとうございました。
IEでは、16進と指数表示は数値扱いですね。
# 後続の処理で範囲チェックが入っているので、
# 16進は数値以外と勘違いしてしまいました。
# isNaN==false で範囲外だと、「~は最小nまで入力可能です」
# とメッセージがでるようになっています。
# なぜか、0X1は1以下と判定されます^^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- UNIX・Linux bash環境でのエラー対応をお願い致します。 1 2022/11/26 17:41
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) Excelのマクロについて 2 2022/06/14 03:38
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- Excel(エクセル) マクロ/VBAについて教えてください。 10 2022/05/27 12:59
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onClickとsubmitの処理順序
-
javascriptで入力禁止文字をチ...
-
dijit.form.ComboBoxについて
-
イベント発生時に入力待ち状態...
-
テキストボックスを無効にする...
-
AjaxのWYSIWYGエディタ
-
return trueとreturn falseの用...
-
プルダウン選択を変更すると、...
-
slickのレスポンシブ > center...
-
FormのonsubmitでJavaスクリプ...
-
onchangeイベントを強制的に発...
-
submitがおされた同時に JavaSc...
-
select要素のvalueを配列で取得...
-
Selectボックスの幅を自動で広...
-
HTMLファイル同士での値渡し
-
ラジオボタンの値でリンク先を...
-
ラジオボタンとプルダウンを連...
-
Selectの中身をfor文で入れる
-
JQuery selectが反映されない
-
確認ページからフォームページ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onClickとsubmitの処理順序
-
JSPとJavaScriptの連携について...
-
ラジオボタンによるフォームの...
-
テキストボックス入力を半角英...
-
onChange()メソッド
-
フォームから入力すると、入力...
-
テキストボックスを無効にする...
-
フォームの値が0だったら空白...
-
文末の改行コードを削除したい
-
キーボードの数字のキーだけを...
-
テキストボックスのグレーアウト
-
javaでフォーム入力の確認と文...
-
フィールドを有効(enabled?)に...
-
JavaScript のプログラム質問で...
-
Javascript 郵便番号の入力欄で...
-
イベント発生時に入力待ち状態...
-
フォームのテキストをリンク化...
-
貼り付けイベントで値を取得したい
-
メールフォームの入力確認用Jav...
-
dijit.form.ComboBoxについて
おすすめ情報