郵便番号と住所を、双方向に。
検索結果
7桁の番号は完全一致、3〜6桁は前方一致で検索します。
まとめて照合する
最大500行1行に1件、郵便番号または住所を貼り付けます。複数候補も残し、1行あたり最大200候補を出力します。超過した行は全件数を表示するので、住所を詳しくして再検索してください。
検索方法は自動判別。地域・事業所の条件は「住所・番号を探す」と共通です。入力内容は通信・自動保存されません。
照合結果
| 入力 | 判定 | 郵便番号 | 住所・候補数 |
|---|
全国データを、このHTMLに。
外部API不要日本郵便の町域データと事業所の個別番号データを圧縮して内蔵しています。検索語は外部へ送信しません。住所・番地・建物の実在を証明するデータベースではありません。
| 収録元 | データ更新日 | 配布ページ |
|---|---|---|
| 住所(1レコード1行・UTF-8) | 2026 08 31 | 日本郵便の公式データ |
| 事業所(大口・私書箱) | 2026 08 31 | 日本郵便の公式データ |
取得元・ハッシュを確認
データを更新する
公式配布ページから全国一括の最新データをダウンロードし、ZIPのまま選択できます。取り込みは種類ごとに置き換えます。更新後は「更新版HTMLを保存」で新しいデータを内蔵したファイルを保存してください。
旧KEN_ALL.CSV、差分、都道府県別のデータは対象外です。取り込みに失敗した場合は現在のデータを保持します。ファイルはローカルで処理します。
先行事例と、今回の設計
| 調べたもの | 設計に反映した点 |
|---|---|
| 日本郵便の公式仕様 | 1つの番号に複数の町域を保持。町域・丁目・小字に関する4つのフラグと、括弧内の条件を保存。「以下に掲載がない場合」を実在の町名として補完しません。 |
| zipcloud | 郵便番号検索を候補配列で返す設計を参照。今回のHTMLではAPIを呼ばず、公式データの端末内検索で双方向検索とオフライン動作を実装。 |
| Geolonia 住所正規化 | 表記ゆれへの対応と「どこまで判別できたか」を分ける考え方を参照。今回の実装では原文を保持し、緩い表記ゆれは確認が必要な候補として返します。ライブラリや住所APIへの実行時依存はありません。 |
| 事業所の公式仕様 | 町域番号とは別の種別で保持。会社名・所在地で検索でき、私書箱用も表示。掲載拒否の事業所や料金受取人払など、配布データに含まれない番号があります。 |
照合のしくみと限界
- 郵便番号は文字列のまま保持し、先頭の0を落としません。7桁は索引で完全一致、3〜6桁は番号順の前方一致検索です。
- 住所は全角・半角、ひらがな・カタカナ、数字付近のハイフンを検索用に揃えます。漢数字は丁目・条・番・号などの文脈で変換し、四日市などの固有名詞は保ちます。
- 都道府県・市区町村を前方から認識し、その地域の町域を照合します。都道府県や郡の省略も候補検索に対応。同名地名や区名だけの入力では複数候補を残します。
- 単純な丁目の一覧・範囲、ビルの階数、数字だけで列挙された番地条件を照合します。「その他」は同じ町域の全例外が単純な番地列挙で、すべての判定が終わった場合のみ確定します。複雑な番地範囲や除外条件、京都の通り名などは確認を求めます。
- 番地・建物・部屋番号は郵便番号データから実在を検証できません。「町域一致」は完全な住所確認を意味しません。旧住所の時系列変換、曖昧な誤字の自動修正、緯度経度の推定は行いません。
「候補が1件」と「条件を満たすことを確認できた」は別です。未掲載町域用の番号や事業所番号を、一般の町域番号として自動確定しない設計です。
1.1:レビューを受けた改善
- 条件を調べる前に最長の町域を保持します。「港区芝浦9丁目」は「芝」や近隣事業所へ戻さず、
condition_mismatchと収録条件を返します。「未掲載町域用」の番号にも自動で置き換えません。 - 約2.2万件の事業所名の正規化を初期読み込み時にまとめ、検索ごとの重複処理を除きました。
- 名称の先頭・末尾の「株式会社」等の省略は、独立した要確認候補として照合します。支社・営業所名は消しません。
- 名駅の「1-1-8」と「1-1-80」を数字の成分ごとに区別。未完成の数字列、枝番と部屋番号を区別できない場合、丁目や番の位置がおかしい場合は確定しません。
| 検索入力 | 1.0 | 1.1 |
|---|---|---|
| 銀座 | 148.2 ms | 21.5 ms |
| 西新宿2-8-1 | 155.0 ms | 15.5 ms |
| 東京都西多摩郡 | 159.1 ms | 17.0 ms |
同じNode.js環境・同じ公式データで各入力を2回実行した後、9回の中央値を比較(2026 09 07)。エンジン内の処理時間で、初回準備と画面描画は含みません。ブラウザー・スマホでの速度は未測定です。候補条件の修正も含むため、すべての検索で結果件数が同一という意味ではありません。
収録版の検証結果
2026 09 07、検索エンジン47項目とデータ処理9項目をNode.js上で検証。全142,912種類の郵便番号について、候補数が元データの行数と一致することを照合しました。
全角・先頭ゼロ、町域の複数候補、芝の丁目条件、実在町域「一円」、地下と地上階、ビル名の前に番地がある住所、カナ入力、郵便番号と住所の矛盾、ZIPのCRC、Shift-JIS事業所データ、取込失敗時のデータ保持、圧縮書き出しを検証しています。未知の住所表記を含む網羅的な精度保証ではありません。
組み込み用のJavaScript API
このHTML内でデータ準備完了後、非同期APIを利用できます。PostalResolver.ready を待ち、PostalResolver.search() を呼びます。返り値には全件数・郵便番号の種類数・判定・注意・候補配列が含まれます。
await PostalResolver.ready;
const answer = await PostalResolver.search('東京都港区芝4丁目1-1', {
mode: 'auto', pref: '', business: true, limit: 60
});
// answer.state / answer.total / answer.notes / answer.results
// 郵便番号は answer.results[i].zip(文字列)
// 次のページ: { offset: 60, limit: 60 }本体:自作JavaScript、依存パッケージなし。Web Workerで検索し、圧縮はブラウザー標準機能を使用。最近のChrome / Edge / Safari / Firefox向け。全国データのため初回展開に数秒かかる場合があります。
調査日:2026 09 07。データの出典:日本郵便株式会社。公式仕様により、郵便番号データは使用・再配布可能です。このアプリは日本郵便の公式サービスではありません。