手軽屋
ツール一覧

郵便番号・電話番号・住所の正規表現2026年版

公開: 2026-06-16

日本語特有の和書式に対応した正規表現を、現場でそのまま使える形でまとめます。日本郵便・総務省の公式仕様に準拠した上で、レアケース(北海道・IP電話・全角入力)への向き合い方も整理しました。

郵便番号(日本郵便の公式書式)

日本郵便の郵便番号は 3桁 + ハイフン + 4桁 の7桁構成です。表記揺れ(ハイフンなし・全角・〒記号)を吸収するかどうかで正規表現が変わります。

// 厳密:ハイフン入り7桁
/^\d{3}-\d{4}$/

// 緩い:ハイフン省略可
/^\d{3}-?\d{4}$/

// 〒記号付き・前後空白OK
/^\s*〒?\s*\d{3}-?\d{4}\s*$/

全角数字(0〜9)で入ってきたら、保存前に半角化することを推奨します。本サイトの 全角半角変換 ツールで挙動を確かめられます。

電話番号(総務省『電気通信番号規則』準拠)

日本の電話番号は、総務省の電気通信番号規則で『市外局番+市内局番+加入者番号』の3区切りに定められています。市外局番は2〜5桁、加入者番号は4桁、合計10桁(携帯は11桁)が基本です。

// 汎用(固定+携帯):0X-XXXX-XXXX
/^0\d{1,4}-\d{1,4}-\d{4}$/

// 携帯番号(070/080/090)
/^0[789]0-\d{4}-\d{4}$/

// IP電話(050)
/^050-\d{4}-\d{4}$/

// フリーダイヤル(0120/0800)
/^(0120|0800)-\d{3}-\d{3}$/

// ハイフンなし許容(11桁)
/^0\d{9,10}$/

現実の入力では「03(1234)5678」「03 1234 5678」「+81-3-1234-5678」も来ます。バリデーションは緩く受けて、保存前に正規化(ハイフン区切りの統一)するのが定石です。

市外局番のレアケース

単純な 0X-XXXX-XXXX パターンは2桁市外局番を前提にしているため、4桁・5桁の地域で弾いてしまうことがあります。ビジネス系のフォームでは 0\d{1,4}-\d{1,4}-\d{4} のように幅を持たせるのが安全です。

住所:都道府県の分割

住所文字列から都道府県を切り出すときの定番です。

// 都道府県+それ以降(市区町村以降)
/^(...??[都道府県])(.*)$/

// 例: 「東京都千代田区...」→ $1=東京都, $2=千代田区...
//     「北海道札幌市...」 → $1=北海道, $2=札幌市...
//     「神奈川県横浜市...」→ $1=神奈川県, $2=横浜市...

...?? は『0〜3文字の非貪欲マッチ』。北海道(3文字)東京都/京都府/大阪府(3文字)神奈川県/和歌山県/鹿児島県(4文字)に正しく対応します。.?? 程度では4文字県(鹿児島県など)を取り損ねます。

全角数字・全角ハイフンの吸収

日本のフォームには、IMEから全角数字(0〜9)・全角ハイフン(-、—、ー)が混じることがしばしばあります。正規表現で頑張るより、受信側で先に半角化する方が、その後の処理がずっと楽です。

// 全角→半角の変換
str
  .replace(/[0-9]/g, c => String.fromCharCode(c.charCodeAt(0) - 0xFEE0))
  .replace(/[-—ー‐]/g, '-');

補足

パターンを試しに動かす

上の正規表現を貼って、手元の住所録・顧客台帳の抜粋でマッチ挙動を確かめられます:正規表現チェッカー