2012年11月03日

CGIで電話番号・郵便番号のformを作るとき

 今回も、自分自身のための備忘録的な内容です。

 電話番号や郵便番号をメールフォームで入力してもらうのに、どういうフォーマットにするのが、受け取り側としていいのかというと、
電話番号:xxxx-xxxx-xxxx(数字の桁数はいろいろ)
郵便番号:xxx-xxxx
というふうに、(いわゆる)半角数字と(いわゆる)半角のハイフンとの組み合わせで統一できると嬉しいのです。

 今使わせてもらっているメールフォームのCGIでは次のような定義をしています。

tel_zip_1.gif


 私の希望にぴったりですが、が、携帯電話やスマホで実際に入力してみると、数字とハイフンの切替が面倒です。

 考えられるのは、[ ]-[ ]-[ ]というふうに入力欄を3つ(郵便番号ならば2つ)用意して、送信時に、ハイフンで繋いで電話や郵便番号のデータを作ればそれでいいのですが、CGIのスクリプトを書き直すのは面倒(いや、できない)ので、丸一日対策を考えました。
 その結果、正規表現の書き換えで、ハイフンのあるなしに柔軟に対応できることが分かりました。
 参考にしたのは、
http://d.hatena.ne.jp/seuzo/20091215/1260853900
です。ここの記述を見ると、さらに(いわゆる)全角のハイフンだとか長音記号、さらには括弧やスペースにも対応しているという、私が求めていたものでした。
 括弧にも対応させると少し長くなるので、それは除いて、さらに別のサイトの正規表現についての記述も利用させてもらうことにしました。

tel_zip_2.gif


 結局、
電話番号については
(旧)([0-9]+)([(\-])([0-9]+)([(\-])([0-9]+)
(新)\d{2,4}[  ー−\-]{0,2}\d{2,4}[  ー−\-]{0,2}\d{4}

郵便番号は
(旧)\d\d\d-\d\d\d\d
(新)\d{3}[  ー−\-]{0,2}\d{4}

と書き換えました。

 半角のハイフンの他、全角のハイフン、長音記号、半角・全角のスペースにも対応できました。


posted by kewpie at 08:06| Comment(0) | TrackBack(0) | ファイル作成
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/59768309
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
コメントの投稿について
○お名前とコメント欄の記入は必須です。
○メールアドレスは任意です。記入されても公開はされません。管理人のみに知らされます。
○スパム防止のため、
・ホームページアドレス欄への記入はできません。
・コメント欄にURLは記入できません。
・スパムと思われる語を記入できません。
 これらをしようとすると、最終的に投稿完了できません。
○投稿完了後に、管理人の判断でスパムと判断した投稿は削除させていただきます。