プロが教える店舗&オフィスのセキュリティ対策術

あるテキストボックスには5桁の半角数字を入力させるようにしたいと思っています。
このテキストボックスには以下の入力チェックをかけていますが、「00000」を入力すると「0」と判断されてしまい。一つ目のチェックに引っかかってしまいます。
これを文字列として判断する方法はありますか?
または、以下のチェックに引っかからない方法はありますか?
よろしくお願いいたします。

(codeにはvalueが入っています。)

if(code == 0){
alert("入力してください。");
return false;
}
if(isFinite(code) == false){
alert("半角数字を入力してください。");
return false;
}
if(code.length != 5){
alert("5桁入力してください。");
return false;
}

A 回答 (4件)

Javascriptって正規表現が使えましたよね?


だったら \d\d\d\d\d とすればいいような気がします。

参考URL:http://himajin.moo.jp/javascript/match.html,http …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
code.match(/\d\d\d\d\d/)
としたのですが、エラーになってしまいうまく行きませんでした。。。

お礼日時:2004/12/28 15:01

まず原因を考えましょう。



これは、比較演算子 == の処理ですが、
右辺が数値の為、左辺の属性が自動変換されているのです。
故に if(code == 0){ で真となる code の値は、
"0", "00", "000", "0000", "00000"、それと ""(長さ0の文字列)の全てです。
(code の値が入力チェックの為に文字列であるという前提での話です。属性が不定の場合は、false, undefined, null, NaN, 0 も 真となります。)

で、「alert("入力してください。");」により察するに
必須入力のチェックと思われますので
対応方法は、
if(code == ""){
と、0 を "" に書き換えるのが良いかと。
(if(code.length == 0){ でも同じですが・・・)

参考までに。
    • good
    • 0
この回答へのお礼

if(code == ""){
としたらできました♪
どうもありがとうございました。

お礼日時:2004/12/28 14:51

最初にシングルクォーテーションを入れるとか?


「’」←この記号です。

「'00000」と入れればどうです?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
エラーになってしまいうまくいきませんでした。。。

お礼日時:2004/12/28 15:02

クウォーテーションで括ってもダメですか?



if(code == '00000'){
alert("入力してください。");
return false;
}

とか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
クウォートを使って以下のようにしたら、チェックに引っかかりませんでした。
面倒なことしてますか??

if(code == "00000"){
}else if(code == 0){
alert("入力してください。");
return false;
}

お礼日時:2004/12/27 18:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!