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ランキング
-
PDFフォームで条件つき金額を表...
-
日付入力欄の表示形式を自動的...
-
テキストフィールドに入力した...
-
入力モード 自動 切り替え
-
onClickとsubmitの処理順序
-
vbsでフォームに値を入力できない
-
テキストボックス入力を半角英...
-
submit後、同じ入力欄に戻らせ...
-
onchangeイベントを強制的に発...
-
プルダウン選択を変更すると、...
-
return trueとreturn falseの用...
-
チェックボックスのON/OFFでVal...
-
<JavaScript>tableタグを入力不...
-
Selectボックスの一覧表示方法
-
select要素のvalueを配列で取得...
-
innerHTML内では改行は禁止?
-
JavaScriptで特定のtdタグにcla...
-
onclickが動作しない
-
チェックボックスの有無判定
-
プルダウン 項目が多いので先頭...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onClickとsubmitの処理順序
-
条件により、リンク先に画面遷...
-
javascriptで入力フォームが空...
-
フォームから入力すると、入力...
-
ラジオボタンによるフォームの...
-
JSPとJavaScriptの連携について...
-
テキストフィールドに入力した...
-
日付入力欄の表示形式を自動的...
-
最初の入力を判断
-
PDFフォームで条件つき金額を表...
-
テキストボックスを無効にする...
-
URLの/以降だけを入力したいです。
-
vbsでフォームに値を入力できない
-
フォームの値が0だったら空白...
-
テキストエリア入力文字数の表...
-
VBScriptで未入力のチェック(...
-
テキストボックス入力を半角英...
-
数字の1文字目を消したい
-
Javascriptが機能せず原因が分...
-
javascriptで入力禁止文字をチ...
おすすめ情報