スレッド表示 | フラット表示〕 全トピック 920 件中 429 番目 次≫ ≪前

郵便番号の正規表現

created: 2005-06-16 18:28 | modified: 2005-06-17 11:07 | reply: 4

[2316] 郵便番号の正規表現

user: yayoi | created: 2005-06-16 18:28
郵便番号のチェックをする正規表現を書いています。

単純に数字だけマッチ、ということだけなら簡単なんですが、

前が3桁、後ろが4桁でその間はハイフン「-」のみの数字をマッチさせるには、どう書けばよいのでしょうか。

if (preg_match("/[0-9]/,$zip"))

「-」の前と後ろを分けて

list($pref,$city) = split("-",$zip);
if(preg_match("/[0-9]{0,3}/,$pref"));

のようなやり方をしてみたのですが、
ダメです。
ネットで調べてみたのですが、あまり情報がなく、
アドバイスよろしくお願い致します。
reply: 2317 2318 返信 編集 削除

[2317] こんばんは。

user: さとし | created: 2005-06-16 21:45
これは駄目でしょうか。
if(preg_match("/[0-9]{3}\-[0-9]{4}/", $zip));
Parent: 2316  reply: 2320 返信 編集 削除

[2320] ダメです・・

user: yayoi | created: 2005-06-17 10:43
さとしさんの言うやり方をそのままやってみたのですが、ダメでした。

if(preg_match("/^[0-9]{3}\-[0-9]{4}$/", $zip));

と先頭から末尾まで、という式にしてもだめです。何故でしょう・・・

(ちなみにPHPのバージョンは4.3.11です)
Parent: 2317  reply: 2321 返信 編集 削除

[2321] 出来ました!

user: yayoi | created: 2005-06-17 11:07
何が違ったかというと、また不思議なんですが、
前回の「@」と同じように[\-]というように[]で囲んであげないとマッチしないようです。
ハイフン「-」がマッチするか?だけを調べた時にわかったのですが、

単純に

preg_match("/\-/",$zip)

というように書いてもダメみたいです。
Parent: 2320  返信 編集 削除

[2318] Re.郵便番号の正規表現

user: さとし | created: 2005-06-16 21:48
yayoiさんのpreg_matchの"の閉じる場所が違ってるからマッチしないのかもしれません。
Parent: 2316  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 429 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑