最新閲覧日:

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

このQ&Aに関連する最新のQ&A

A 回答 (9件)

先程書きましたとおり、半角英数字を表す正規表現は\wです。



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

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

urizakaさんが仰られるようなことが可能だったら、もっと楽なんですけどね・・・。
    • good
    • 0

「全角入力以外をはじく」というのは、半角文字が入力された場合にアラートを出す、というようなことですか?


目的が分からなければ永遠にurizakaさんの質問に答えなければなりなくなりますので、どういう目的で何をしたいのかを明記していただければ幸いです。

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

この回答への補足

urizakaです。

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

補足日時:2001/06/15 15:56
    • good
    • 0

>うーん、空欄を認識させてreplaceする…というやり方もないわけではないのですが、実はテキストボックス部分はユーザー名を入力する場所で、姓と名は


>必ず空欄を入れて分けることになっているので、そのやりかたはできないのです。

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

見当違いのこといってたらすいません。
    • good
    • 0

何度もスイマセン。


誤字脱字が目立ちますね・・・。

「urizaka」と書いてしまいました。「urizakaさん」の誤りです・・・。申し訳ない。

この回答への補足

urizakaです

いえいえ、非常に役立っております。
ところで、半角スペースは記述した方法で分かったのですが、
全角スペースだと正規表現ではどのように記述するのでしょうか?

補足日時:2001/06/15 14:52
    • good
    • 0
この回答へのお礼

すみません、よく読んだらちゃんとやり方が書いてありましたね。
ありがとうございました。
ところで、全角入力以外をはじく、という場合にはどうなるのでしょうか?
まさか全角文字を全部入れるわけにもいかないし…

お礼日時:2001/06/15 15:16

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>

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

事前にスペースを削除(置換)してはそうですか?


もしくは、
if( A="" || A=" " || A=" ")
としては?

この回答への補足

urizakaです

いや、実はそのテキスト部分というのはユーザーの名前を入力する場所で、
入力規則として、必ず姓と名は分離(スペースを入れる)ことになっているので
空欄を事前に削除するというのはできないんですよ…うーん、説明不足でした。
すみません。

補足日時:2001/06/15 13:46
    • good
    • 0

すいません、下の回答の補足です。


sumはフォーム名、textはテキストボックス名です。
HTML部分はこれです↓。

<FORM NAME="sum"><INPUT TYPE="text" NAME="text"></FORM>

この回答への補足

urizakaです。

そのように入力してみたのですが無効とエラーが出てしまいました。
この例にあるmatch以降ってどういう意味なのでしょうか?
すみませんが、教えてください。

補足日時:2001/06/15 13:49
    • good
    • 0

if(!document.sum.text.value || document.sum.text.value.match(/^ +$/)){


alert("無効");
}

これでどうでしょう?
    • good
    • 0

 私の知識ではやり方がわからないのですが、何か必須項目的な文字(または数字や記号)をチェックするような形で空欄を認識させると言うや

り方はどうでしょうか?

この回答への補足

urizakaです。

うーん、空欄を認識させてreplaceする…というやり方もないわけではないのですが、実はテキストボックス部分はユーザー名を入力する場所で、姓と名は
必ず空欄を入れて分けることになっているので、そのやりかたはできないのです。
ただ、テキストボックス内で文字データを認識するまでチェックを行い、文字データがなかったら空欄を全部置き換えて…という方法ができる気もするので、文字データがあることを認識する方法がないかを探してみます。
 でも、もしご存知でしたら教えてください。

補足日時:2001/06/15 13:52
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報