- ベストアンサー
入力項目のチェック
<INPUT type=text size=30 name="氏名(漢字)"> で漢字の氏名を得た時に、漢字で入力されたかを チェックする方法には、どうしたいいのでしょうか? また同様に、ひらがなのチェックは? 郵便番号から、住所を検索して出力させるには どうしたらいいのでしょうか? (goo の郵便番号検索のような事をしたいのですが・・・)
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
なるほど。そう言うことでしたか。。質問の意味を勘違いしてしまいました すみませんです。。(^^; で、やりたいことはひらがなと漢字のチェックで良いのかな?。。のようですね(^^; チェック方法はcallhiroさんのようなやり方で良いんではないかと思います。 この場合は2バイト文字の判定のようですね。。 これを漢字コードのひらがなの範囲にしてしまえば良いのではないかと。。。 ひらがなの範囲は漢字コード表とかに載ってますので調べてみてください たぶん、検索エンジン等で漢字コード表とか入力すれば出てくるんでないかな?(^^; ただし、漢字コードは何種類かあってコード体系によってコードが違う部分もあるので注意してください。 (コードによって同じ部分もある。この辺がややこしいところ(^^;) チェックルーチンに入る前にコード変換しておかないと意図した通りには動かないですよ チェックルーチンもどのコードを使ってるのか意識して使わないとだめです。 Winの場合はシフトJISが送られるようですが、UNIXマシンとかはUnicodeで送られるみたいです。 Macの場合は。。あぅ。。Macユーザなのにわからない。。(T^T) ちなみに日本語2バイト文字のコード体系には、JISコード、シフトJIS、Unicode、の三種類があります。 もしかしたら他にもあるかもしれないけど、大体一般的に使われてるのはこの3種類です。
その他の回答 (3)
- callhiro
- ベストアンサー率35% (54/152)
僕は、自分のcgiの中で $moji = "[\201-\237\340-\374][\100-\176\200-\374]"; のように書いて、2バイト文字を定義して判別しています。 if($key_word !~ /$moji/){} とすれば、$key_wordが英数字である場合if文の中に入ります。 (忘れているので、あれ?これで良いのか?なんて今自分のスクリプト見ながら思ってますが、実際使ってます^^;) おそらくこの中に漢字もひらがなも含まれていると思いますので、 うまく漢字とひらがなを切り分けられればいいんですけどね。 何番から何番がどうだとかいう詳しい内容はちょっとわからないです。 あまり参考にならないかもしれませんが書いてみました。
補足
やっはり、こういった感じになってしまいますかね? もう少し詳しく知りたいです。 どこの範囲が「漢字」「ひらがな」「その他」なのか?
漢字・ひらがなのチェックはスクリプトを使用することで可能です。(もちろん、cgiでも可能です) 住所検索についても同様、スクリプトやcgiを使うことで可能になります。 cgiについてはsyunponさんが書いているようなので、スクリプトのほうについて…。 まずは、こちらが参考になるかと思います。
補足
有難うございます。 スクリプトを作成するときの参考にさせてもらいます。 ただ、どうしたら「漢字」「ひらがな」の判定が できるのか、そのサイトから探し出せませんでした。 すいません。
- syunpon
- ベストアンサー率42% (9/21)
えっと。。たぶん <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で勉強してみてください。で、わからない事があったら補足ください
補足
ごめんなさい 質問の書き方が悪かったようです。上の例でいうと 「あ」という字がひらがなで入力されたのかと チェックできないか?という事でした。 文字コードか何かで範囲判定すれば、いいと思うのですが こういったものを、チェックできる機能があればと思い 質問させて頂いています。
お礼
有難うございます。 後は、自分で調べて何とかなると思います。 また、お願いします。