-PR-
解決
済み

テキストボックスの空欄を消したい

  • 暇なときにでも
  • 質問No.90608
  • 閲覧数432
  • ありがとう数2
  • 気になる数0
  • 回答数9
  • コメント数0

お礼率 32% (45/139)

urizakaと申します。
さて、現在JavascriptとHTMLで、HTMLのテキストボックスが空欄になって
いた場合エラーになるという処理を作っているのですが、その時に空欄の
内容が""の時だけでなく、" "(スペースキー一回)や" "(スペースキー2回)
等の場合も、テキストボックスが空欄であると認識してエラーが出るように
したいのですが、何か良い方法ってないでしょうか?
 VBScriptの場合は、" "を""に変換して比較するという方法が使えるの
ですが…
 すみませんが、宜しくお願いします。
 環境は、JBuilder4です。
通報する
  • 回答数9
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.5
レベル9

ベストアンサー率 45% (29/64)

No.2 No.3です。
下記のスクリプトで何かアクションを起こしましたか?
match以降の意味は正規表現を使用しています。/で囲まれた部分が正規表現であることを意味します。^と+の間に半角スペースがあります。
まず+はその直前の文字(この場合は半角スペース)が一個以上あることを表しています。次に^は文字列がその一個以上の半角スペースで始まっていることを表し、$は文字列が一個以上の半角スペースで終わっていることを表します。
つもりこの正規表現の意味は「文字列に半角スペースが一個以上あり、その文字列が半角スペース一個以上で始まり、そのまま終わっている」です。urizakaの求めている半角スペースのみの場合という意味です。

試しに以下のソースを張り付けて下さい。
<SCRIPT LANGUAGE="JavaScript">
<!--
function check(){
if(!document.sum.text.value || document.sum.text.value.match(/^ +$/)){
alert("無効");
}
}
//-->
</SCRIPT>

HTMLは
<FORM NAME="sum"><INPUT TYPE="text" NAME="text" onChange="check()"><BR>
<INPUT TYPE="text" NAME="other"></FORM>

これで上のフォームに半角スペースを入力して、下のフォームにカーソルを移動させてみて下さい。
-PR-
-PR-

その他の回答 (全8件)

  • 回答No.3
レベル9

ベストアンサー率 45% (29/64)

すいません、下の回答の補足です。 sumはフォーム名、textはテキストボックス名です。 HTML部分はこれです↓。 <FORM NAME="sum"><INPUT TYPE="text" NAME="text"></FORM> ...続きを読む
すいません、下の回答の補足です。
sumはフォーム名、textはテキストボックス名です。
HTML部分はこれです↓。

<FORM NAME="sum"><INPUT TYPE="text" NAME="text"></FORM>
補足コメント
urizaka

お礼率 32% (45/139)

urizakaです。

そのように入力してみたのですが無効とエラーが出てしまいました。
この例にあるmatch以降ってどういう意味なのでしょうか?
すみませんが、教えてください。
投稿日時 - 2001-06-15 13:49:36


  • 回答No.2
レベル9

ベストアンサー率 45% (29/64)

if(!document.sum.text.value || document.sum.text.value.match(/^ +$/)){ alert("無効"); } これでどうでしょう?
if(!document.sum.text.value || document.sum.text.value.match(/^ +$/)){
alert("無効");
}

これでどうでしょう?
  • 回答No.1

 私の知識ではやり方がわからないのですが、何か必須項目的な文字(または数字や記号)をチェックするような形で空欄を認識させると言うやり方はどうでしょうか? ...続きを読む
 私の知識ではやり方がわからないのですが、何か必須項目的な文字(または数字や記号)をチェックするような形で空欄を認識させると言うやり方はどうでしょうか?
補足コメント
urizaka

お礼率 32% (45/139)

urizakaです。

うーん、空欄を認識させてreplaceする…というやり方もないわけではないのですが、実はテキストボックス部分はユーザー名を入力する場所で、姓と名は
必ず空欄を入れて分けることになっているので、そのやりかたはできないのです。
ただ、テキストボックス内で文字データを認識するまでチェックを行い、文字データがなかったら空欄を全部置き換えて…という方法ができる気もするので、文字データがあることを認識する方法がないかを探してみます。
 でも、もしご存知でしたら教えてください。
投稿日時 - 2001-06-15 13:52:25
  • 回答No.4
レベル9

ベストアンサー率 40% (33/81)

事前にスペースを削除(置換)してはそうですか? もしくは、 if( A="" || A=" " || A=" ") としては? ...続きを読む
事前にスペースを削除(置換)してはそうですか?
もしくは、
if( A="" || A=" " || A=" ")
としては?
補足コメント
urizaka

お礼率 32% (45/139)

urizakaです

いや、実はそのテキスト部分というのはユーザーの名前を入力する場所で、
入力規則として、必ず姓と名は分離(スペースを入れる)ことになっているので
空欄を事前に削除するというのはできないんですよ…うーん、説明不足でした。
すみません。
投稿日時 - 2001-06-15 13:46:59
  • 回答No.6
レベル9

ベストアンサー率 45% (29/64)

何度もスイマセン。 誤字脱字が目立ちますね・・・。 「urizaka」と書いてしまいました。「urizakaさん」の誤りです・・・。申し訳ない。 ...続きを読む
何度もスイマセン。
誤字脱字が目立ちますね・・・。

「urizaka」と書いてしまいました。「urizakaさん」の誤りです・・・。申し訳ない。
補足コメント
urizaka

お礼率 32% (45/139)

urizakaです

いえいえ、非常に役立っております。
ところで、半角スペースは記述した方法で分かったのですが、
全角スペースだと正規表現ではどのように記述するのでしょうか?
投稿日時 - 2001-06-15 14:52:14
お礼コメント
urizaka

お礼率 32% (45/139)

すみません、よく読んだらちゃんとやり方が書いてありましたね。
ありがとうございました。
ところで、全角入力以外をはじく、という場合にはどうなるのでしょうか?
まさか全角文字を全部入れるわけにもいかないし…
投稿日時 - 2001-06-15 15:16:22
  • 回答No.8
レベル9

ベストアンサー率 45% (29/64)

「全角入力以外をはじく」というのは、半角文字が入力された場合にアラートを出す、というようなことですか? 目的が分からなければ永遠にurizakaさんの質問に答えなければなりなくなりますので、どういう目的で何をしたいのかを明記していただければ幸いです。 因みに、半角英数字、及びアンダーバー(_)を意味する正規表現は\wです。それ以外という指定ならば\Wになります。 ...続きを読む
「全角入力以外をはじく」というのは、半角文字が入力された場合にアラートを出す、というようなことですか?
目的が分からなければ永遠にurizakaさんの質問に答えなければなりなくなりますので、どういう目的で何をしたいのかを明記していただければ幸いです。

因みに、半角英数字、及びアンダーバー(_)を意味する正規表現は\wです。それ以外という指定ならば\Wになります。
補足コメント
urizaka

お礼率 32% (45/139)

urizakaです。

説明不足でしたね、すみません。
担当者の名前を入力するテキストボックスに全角漢字、ひらがな、カタカナ
以外のあらゆる文字が入力された場合にエラーがでるようにしたいのです。
(つまり、日本人の名前としては使わない文字である英語、記号が入力された
場合にエラーがでるようにしたいということです。ちなみに外国人の名前は
全角カタカナで入力します)。
 すみませんが教えてください。
投稿日時 - 2001-06-15 15:56:44
  • 回答No.7
レベル8

ベストアンサー率 48% (12/25)

>うーん、空欄を認識させてreplaceする…というやり方もないわけではないのですが、実はテキストボックス部分はユーザー名を入力する場所で、姓と名は >必ず空欄を入れて分けることになっているので、そのやりかたはできないのです。 よく意味がわからないのですが、 「replaceしたものを変数に入れその変数に対しチェックする」 って方法ではだめなのですか? テキストボックス部分は ...続きを読む
>うーん、空欄を認識させてreplaceする…というやり方もないわけではないのですが、実はテキストボックス部分はユーザー名を入力する場所で、姓と名は
>必ず空欄を入れて分けることになっているので、そのやりかたはできないのです。

よく意味がわからないのですが、
「replaceしたものを変数に入れその変数に対しチェックする」
って方法ではだめなのですか?
テキストボックス部分は何も影響ありませんが?

見当違いのこといってたらすいません。
  • 回答No.9
レベル9

ベストアンサー率 45% (29/64)

先程書きましたとおり、半角英数字を表す正規表現は\wです。 ですが、名前に使われない文字もはじくとなると大変なことになります。例えばOS依存の文字(Windowsなら○で囲んだ数字など)やデフォルトとしてある★などのマーク、半角カタカナ、全角のアルファベット、その他の外国語など、それら全てをチェックしなければなりません。これは不可能です。 もし半角英数字及びアンダーバーのみをはじくのであれば、 ...続きを読む
先程書きましたとおり、半角英数字を表す正規表現は\wです。

ですが、名前に使われない文字もはじくとなると大変なことになります。例えばOS依存の文字(Windowsなら○で囲んだ数字など)やデフォルトとしてある★などのマーク、半角カタカナ、全角のアルファベット、その他の外国語など、それら全てをチェックしなければなりません。これは不可能です。

もし半角英数字及びアンダーバーのみをはじくのであれば、下記のようにすると可能です。
if(document.form.text.value.match(/\w/)){
alert("!!");
}

urizakaさんが仰られるようなことが可能だったら、もっと楽なんですけどね・・・。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ