• ベストアンサー

文字列に空白を含んだ場合の処理

現在、文字列の入力チェックの関数を作成しています。 function checkMemberId() { if(document.form1.memberId.value==undefined){ alert("番号を入力してください。"); return false; }else if(??????????){ alert("空白が含まれています。"); return false; }else { alert("半角数字を入力してください。"); return false; } } 上記の else if の条件に、document.form1.memberIdに空白を含んだ文字列が入力されたらアラートメッセージを出すという処理を記述したいのですが、どういう処理を記述すればよいのでしょうか。 空白は全角・半角とも対象で、すべて空白が入力された時も同様の処理にしたいです。 以下、該当のHTML部です。 <form name="form1"> <input type="text" name="memberId"> </form> 以上、よろしくお願い致します。

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

  • ベストアンサー
noname#86752
noname#86752
回答No.1

else if( document.form1.memberId.value.indexOf(" ") >= 0 || document.form1.memberId.value.indexOf(" ") >= 0 ) で、どうでしょう?

noname#16621
質問者

補足

回答ありがとうございます。 教えていただいた方法でやってみたのですが、文字が一文字でも入力された時は動作しますが、全て空白にした場合(全角・半角とも)、未入力と見なされてしまうようで、一番目の条件にヒットしてしまいます。空白=未入力ということなのでしょうか・・・。

その他の回答 (3)

回答No.4

#3です。 >> 全て空白にした場合(全角・半角とも)、未入力と見なされてしまうようで、一番目の条件にヒットしてしまいます。空白=未入力ということなのでしょうか・・・。 と書かれてので、 > if(document.form1.memberId.value==undefined){ if(document.form1.memberId.value==""){ とした方がよいかもしれませんね。

noname#16621
質問者

お礼

回答ありがとうございます。 crumさんとpapillon68さんの回答を合わせて、 function checkMemberId() { if(document.form1.memberId.value==""){ alert("番号を入力してください。"); return false; }else if(document.form1.memberId.value.indexOf" ") >= 0 || document.form1.memberId.value.indexOf(" ") >= 0 ){ alert("空白が含まれています。"); return false; }else {alert("半角数字を入力してください。"); return false; } return true; } という記述にしたところ、問題なく動作させることができました。 ありがとうございました。

回答No.3

bonotanさん、こんにちは。 逆転の発想になるのですが、 入力は半角数字のみ許可しようとされているようなので、 半角数字でなければエラーメッセージを出すようにするのはいかがでしょうか。 function checkMemberId() { if(document.form1.memberId.value==undefined){ alert("番号を入力してください。"); return false; } else if(! document.form1.memberId.value.match(/^[0-9]+$/)) { alert("半角数字を入力してください。"); return false; } return true; }

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

正規表現を使って、空白にマッチするかをテストするとか。 var member_id = document.form1.memberId.value; if ( !member_id.match( / | / ) ){ alert( 'white space contained.' ); } 逆に、空白を先に削除してからチェックする方が楽かも。 member_id = document.form1.memberId.value.replace( / | /g, '' );

noname#16621
質問者

お礼

お返事遅れて、申し訳ございません。 正規表現は私には難しすぎて、よく理解できなかったので、もう少し勉強したいと思います(;_;) 回答ありがとうございました。

関連するQ&A