• ベストアンサー

入力項目のチェック

<INPUT type=text size=30 name="氏名(漢字)"> で漢字の氏名を得た時に、漢字で入力されたかを チェックする方法には、どうしたいいのでしょうか? また同様に、ひらがなのチェックは? 郵便番号から、住所を検索して出力させるには どうしたらいいのでしょうか? (goo の郵便番号検索のような事をしたいのですが・・・)

  • CGI
  • 回答数4
  • ありがとう数9

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

  • ベストアンサー
  • syunpon
  • ベストアンサー率42% (9/21)
回答No.4

なるほど。そう言うことでしたか。。質問の意味を勘違いしてしまいました すみませんです。。(^^; で、やりたいことはひらがなと漢字のチェックで良いのかな?。。のようですね(^^; チェック方法はcallhiroさんのようなやり方で良いんではないかと思います。 この場合は2バイト文字の判定のようですね。。 これを漢字コードのひらがなの範囲にしてしまえば良いのではないかと。。。 ひらがなの範囲は漢字コード表とかに載ってますので調べてみてください たぶん、検索エンジン等で漢字コード表とか入力すれば出てくるんでないかな?(^^; ただし、漢字コードは何種類かあってコード体系によってコードが違う部分もあるので注意してください。 (コードによって同じ部分もある。この辺がややこしいところ(^^;) チェックルーチンに入る前にコード変換しておかないと意図した通りには動かないですよ チェックルーチンもどのコードを使ってるのか意識して使わないとだめです。 Winの場合はシフトJISが送られるようですが、UNIXマシンとかはUnicodeで送られるみたいです。 Macの場合は。。あぅ。。Macユーザなのにわからない。。(T^T) ちなみに日本語2バイト文字のコード体系には、JISコード、シフトJIS、Unicode、の三種類があります。 もしかしたら他にもあるかもしれないけど、大体一般的に使われてるのはこの3種類です。

pink-panther
質問者

お礼

有難うございます。 後は、自分で調べて何とかなると思います。 また、お願いします。

その他の回答 (3)

  • callhiro
  • ベストアンサー率35% (54/152)
回答No.3

僕は、自分のcgiの中で $moji = "[\201-\237\340-\374][\100-\176\200-\374]"; のように書いて、2バイト文字を定義して判別しています。 if($key_word !~ /$moji/){} とすれば、$key_wordが英数字である場合if文の中に入ります。 (忘れているので、あれ?これで良いのか?なんて今自分のスクリプト見ながら思ってますが、実際使ってます^^;) おそらくこの中に漢字もひらがなも含まれていると思いますので、 うまく漢字とひらがなを切り分けられればいいんですけどね。 何番から何番がどうだとかいう詳しい内容はちょっとわからないです。 あまり参考にならないかもしれませんが書いてみました。

pink-panther
質問者

補足

やっはり、こういった感じになってしまいますかね? もう少し詳しく知りたいです。 どこの範囲が「漢字」「ひらがな」「その他」なのか?

noname#86982
noname#86982
回答No.2

漢字・ひらがなのチェックはスクリプトを使用することで可能です。(もちろん、cgiでも可能です) 住所検索についても同様、スクリプトやcgiを使うことで可能になります。 cgiについてはsyunponさんが書いているようなので、スクリプトのほうについて…。 まずは、こちらが参考になるかと思います。

参考URL:
http://wakusei.cplaza.ne.jp/twn/wwwjs.htm
pink-panther
質問者

補足

有難うございます。 スクリプトを作成するときの参考にさせてもらいます。 ただ、どうしたら「漢字」「ひらがな」の判定が できるのか、そのサイトから探し出せませんでした。 すいません。

  • syunpon
  • ベストアンサー率42% (9/21)
回答No.1

えっと。。たぶん <INPUT type=text size=30 name="氏名(漢字)"> という記述からテキストボックスの入力について誤解されてると 思うんですが。。(^^; name="氏名(漢字)"なんですが、INPUTタグのname部分は ブラウザ側からCGIに送られてきたデータを識別するための名前を 記述する部分です。例えば以下のように記述したとします <INPUT type=text size=30 name=message> でこのように記述したとしてテキストエリアに「あ」と入力したとします。 するとブラウザ側(クライアント)からサーバへ以下 のようなテキストデータが送られます message=%A4%A2 messageがINPUTタグで記述した識別名です %A4%A2って部分が「あ」という文字の部分ですね 掲示板などのホームページでブラウザのアドレス部分に http://www.aaa.bbb.co.jp/~ccc.cgi?name=%A3%A4%C5%E3 のような文字が出てきたの見たこと無いですか? あれは、クライアントからサーバへテキストエリアに入力された 文字を送っているわけなんですね。 ちょっと説明が長くなってしまいましたね。。すみません(^^; 細かく説明するともっと長くなってしまいますのでCGIの基本的なことは 参考URLで勉強してみてください。で、わからない事があったら補足ください

参考URL:
http://www.tanasan.com/cgi/menu_cg.htm
pink-panther
質問者

補足

ごめんなさい 質問の書き方が悪かったようです。上の例でいうと 「あ」という字がひらがなで入力されたのかと チェックできないか?という事でした。 文字コードか何かで範囲判定すれば、いいと思うのですが こういったものを、チェックできる機能があればと思い 質問させて頂いています。

関連するQ&A

  • cgiの未入力チェック機能

    プログラムを全て記述すると、長くなりそうなので、 まずは現象だけでも。 下記のURLのようなメールフォームを作りました。 http://life-field.com/mailform/mail.htm 一人目の申込者の氏名の未入力チェックだけでも行いたいのですが、 mail.htm中の、氏名には、 <INPUT size="40" type="text" name="name"> と、指定して、 mail.cgiのチェック部分は、 my $name = $cgi->param('name'); このようにパラメータ変換した後、 if($name =~ /^\s*$/){&error('Input Error!','氏名を入れてください。ブラウザーの戻るボタンで戻って、必要な項目を入力して下さい。');exit;} と、エラーチェックをし、 sub error{ my ($title,$msg) = @_; print<<"END"; Content-type: text/html <HTML> <HEAD> <LINK rel="stylesheet" href="mystyle.css" type="text/css"> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE>$title</TITLE> </HEAD> <BODY> <P>$title</P> <HR width="700"> $msg <HR width="700"> </BODY> </HTML> END } こうやって、エラー出力しています。 ですが、氏名を入力して「申し込みボタン」を押したにもかかわらず、 「氏名を入れてください。ブラウザーの戻るボタンで戻って、必要な項目を入力して下さい。」 と未入力エラーが返って来てしまうのです。 考えられる原因がいくつかありましたら、 チェックいたしますので、 どうかお助けください・・・。

    • ベストアンサー
    • Perl
  • 指定した文字入力したら自動で送信

    html,php,javascriptで郵便番号から住所を検索する機能を作ってます。 郵便番号を入力して検索をおすと住所が自動で入力されるのはできていて、郵便番号を7文字入力すると検索ボタンをおさないで自動で住所が入力できたりできますか?? ーーーーーーーーーーーーーーーーー <html> <head> <script type="text/javascript" src="postcode/postcode.js"></script> </head> <body style="margin:0px;"> <form name="address" style="margin: 0px;"> <table border="0" cellspacing="10" cellpadding="0"> <tr> <td nowrap>郵便番号</td> <td><input type="text" name="postcode3" style="ime-mode: disabled;"></td> <td><input type="text" name="postcode4" style="ime-mode: disabled;"></td> <td>&nbsp;</td> <td><input type="button" name="GETADDRESS" value="郵便番号から住所を自動入力" onClick="javascript:checkPostcode('address','postcode','city');"></td> </tr> <tr> <td colspan="4" nowrap><input type="text" name="city" style="width: 100%;"></td> </tr> </table> </form> </body> </html>

  • 複数のテーブルをFIELDSETで・・

    <fieldset> <legend>住所・氏名を記入して下さい。</legend> <table border="1"> <tr> <th colspan=4>お申し込み者</th> </tr> <tr> <td>郵便番号</td> <td colspan=3><input type="text" name="郵便番号" size="10"></td> </tr> <tr> <td>ご住所</td> <td colspan=3><input type="text" name="住所" size="60"></td> </tr> <tr> <td>ふりがな<br> お名前</td> <td><input type="text" name="ふりがな" size="20"><br> <input type="text" name="氏名" size="20"> <td>電話番号</td> <td><input type="text" name="電話番号" size="16"></td> </tr> </table> <br><br> <table border="1"> <tr align="center"> <td colspan=4><b>お届け先</b>(お申し込み者と異なる場合のみご記入ください)</td> </tr> <tr> <td>郵便番号</td> <td colspan=3><input type="text" name="届け先郵便番号" size="10"></td> </tr> <tr> <td>ご住所</td> <td colspan=3><input type="text" name="届け先住所" size="60"></td> </tr> <tr> <td>ふりがな<br> お名前</td> <td><input type="text" name="届け先ふりがな" size="20"><br> <input type="text" name="届け先氏名" size="20"> <td>電話番号</td> <td><input type="text" name="届け先電話番号" size="16"></td> </tr> </table> </fieldset> 上のように縦に並んだ二つのテーブルをFIELDSETを使って囲んで、LEGENDで表題をつけようと思ったのですがうまくいきません。 どこがおかしいのでしょうか?初心者で参考書片手に作っているので、変なことを聞いていたらごめんなさい。

    • ベストアンサー
    • HTML
  • Javascriptの入力チェック、日本語について

    Javascriptの入力チェックをホームページ内に使いたいのですが、 ●住所(都道府県) ●中学校・高校 のようにnameに「()」や「・」がある文字を設定するとエラーになってしまい入力チェックできません。 ■エラーになる例 if(document.f.住所(都道府県).value=="") { errormsg+="住所(都道府県)を入力してください。\n"; } if(document.f.中学校・高校.value=="") { errormsg+="中学校・高校を入力してください。\n"; } HTMLは以下のようにしています。 <input type="text" name="住所(都道府県)"> <input type="text" name="中学校・高校"> nameに日本語を使う場合、どのようにしたら入力チェックができるのでしょうか。 どうぞよろしくお願い致します。

  • 複数の入力欄についての入力チェック

    JAVAScriptを勉強し始めたものです。 よろしくお願いします。 1つのページに複数のフォームと入力欄があります。 それぞれの入力欄は数字を入力することになっていて、その数字が1~90の間にあるかどうかをチェックしたいと考えています。 下記のようなページを見ると、一つ一つの入力欄について、IF文でチェックしているのですが、一括してチェックするようなことは可能ですか? http://www.tagindex.com/javascript/form/check1.html ----------------------------------------- 【以下に、やりたいことの例を示します】 <script type="text/javascript"> <!-- function matchNum() { n=eval(document.myFORM1.myTEXT1.value); // ←この行の「myFORM1」と「myTEXT1」をすべてを網羅するように書き換えられないか? if ( n < 1 || n > 90 ) { alert("入力できるのは、1~90の値です。"); } } // --> </script> <FORM METHOD="GET" name="myFORM1"> <INPUT TYPE="text" NAME="myTEXT1" onblur="matchNum()"> <INPUT TYPE="text" NAME="myTEXT2" onblur="matchNum()"> <INPUT TYPE="text" NAME="myTEXT3" onblur="matchNum()"> </FORM> <br> <FORM METHOD="GET" name="myFORM2"> <INPUT TYPE="text" NAME="yourTEXT1" onblur="matchNum()"> <INPUT TYPE="text" NAME="yourTEXT2" onblur="matchNum()"> <INPUT TYPE="text" NAME="yourTEXT3" onblur="matchNum()"> </FORM> <br> <FORM METHOD="GET" name="myFORM3"> <INPUT TYPE="text" NAME="hisTEXT1" onblur="matchNum()"> <INPUT TYPE="text" NAME="hisTEXT2" onblur="matchNum()"> <INPUT TYPE="text" NAME="hisTEXT3" onblur="matchNum()"> </FORM> <br> <FORM METHOD="GET" name="myFORM4"> <INPUT TYPE="text" NAME="herTEXT1" onblur="matchNum()"> <INPUT TYPE="text" NAME="herTEXT2" onblur="matchNum()"> <INPUT TYPE="text" NAME="herTEXT3" onblur="matchNum()"> </FORM>

  • JavaScriptで入力チェック

    ////サンプル//// <p><input type="text" value="" name="box_1" /></p> <p><input type="text" value="" name="box_2" /></p> <p><input type="text" value="" name="box_3" /></p> <p><input type="text" value="" name="box_4" /></p> Javascriptで入力チェックをして 入力がされていたらpタグとinputタグの間に「○」を表示させたいのですが どのように実装したら良いでしょうか? ・inputタグは4つだけではなくたくさんあります ・DBを使っているのでページを更新しても○が消えないようにしたいです よろしくお願いします!

  • 異なるname属性のテキストの入力チェックについて

    異なるname属性のテキストの入力チェックについて よろしくお願いします。 それぞれname属性の異なるテキスト群があるのですが、 どれかひとつに数字を入力しないと、アラートが出るようにしたいと思っています。 <form action="mail.cgi" method="post" onSubmit="return check(this);"> <input type="text" name="maru" /> <input type="text" name="sankaku" /> <input type="text" name="shikaku" /> </form> この場合のコードの記述方法をお教え頂ければ幸いです。 どうぞよろしくお願い致します。

  • セレクトメニューのチェックと条件一致による入力チェック

    (1)メールフォームでセレクトメニューの「都道府県」部分で選択して送信する場合にJAVAで入力チェックエラーを表示させるにはどうしたらよいでしょうか?(東京、千葉、埼玉はOK) Javaサンプルソースを配布しているサイトを教えて下さい。 (2)JAVAによる入力チェックで「YES」にチェックされた場合に、テキストエリアを入力必須にするエラー表示方法を紹介しているサイトを知っていたら教えて下さい。 --------------------------------------------------------------- <form>名前:<input size="20" type="text" name="name"><br> 住所:<select size="1" name="adress"> <option value="東京">東京</option> <option value="千葉">千葉</option> <option value="埼玉">埼玉</option> <option value="都道府県" selected>都道府県</option> </select><input size="20" type="text" name="adress2"><br> (都道府県の場合はエラー表示)<br> <hr> 選択:<input type="radio" name="sentaku" value="yes">YES <input type="radio" name="sentaku" value="No">NO<br> <hr> YESの場合コメント記載<br> <textarea rows="2" cols="20" name="coment"> ----------------------------------------------------------------

  • PHPの入力チェック

    PHPの初心者です。初歩的な質問ですみません。 以下の機能を実現したいと考えています。 ・会員情報を入力する画面(aaa.php)で、各入力項目のチェックを行い、  正常なら確認画面(bbb.php)へ  異常値なら画面や入力内容はそのままの画面(aaa.php)でエラーメッセージを表示 ※チェックはaaa.php内で行う 「aaa.php」内でチェックするには、以下のように「form action="/aaa.php" 」と記載しないといけないと思いますが、 <form action="/aaa.php" method="post"> 氏名<input type="text" name="name" value="<?= $name ?>"><br> <input type="submit" name="action" value="登録"><br> </form> ↓ validateMaxLength などでチェック このチェック後にaaaから、bbb.phpに入力値を渡してコールする方法が分からないのです。

    • ベストアンサー
    • PHP
  • 入力に関して。

    以下のソースのようにテキストボックスを4つくらい並べて、最大入力文字数になったら、自動的に右のテキストボックスに入力できるようにすることはできるのでしょうか? <html> <head> <title></title> </head> <body> <form name="form1"> <input type="text" name="txt1" size="7" maxlength="3">. <input type="text" name="txt2" size="7" maxlength="3">. <input type="text" name="txt3" size="7" maxlength="3">. <input type="text" name="txt4" size="7" maxlength="3"> </form> </body> </html>