アメリカの住所は、番地と通り名を先頭に置き、市、州、郵便番号へと広げていく順序で書きます。日本や中国のように大きい単位から始める書き方に慣れていると、この逆順は最初にとまどうところです。ここでは各要素の役割と、書式が通常と変わる例外的な宛先を確認します。
住所を構成する要素は何か
標準的な形は、次の四つの部分でできています。
- 通り番地の行。番地の数字、通り名、そして部屋番号やアパート番号が続きます。
- 市区町村の行。市の名前を書きます。
- 行政区分の行。二文字の州略号を書きます。
- 郵便番号の行。五桁の数字、または五桁に四桁を足した形を書きます。
部屋番号は通り名のあとに置くのが一般的です。棟の名前や階数が入ることもあります。番地の数字は通りに沿って振られており、数字の大きさが必ずしも建物の規模を表すわけではありません。
州の略号はどこまで使えるのか?
州の略号は全五十州に二文字ずつ割り当てられています。加えて、コロンビア特別区と、いくつかの海外領土にも略号があります。ここで注意したいのは、略号が郵便用の体系であって、州の正式名称とは別物だという点です。住所のなかで州を表す欄には略号を入れるのが慣例ですが、データとして見るときは略号と正式名称の対応表を持っておく必要があります。
もう一つの落とし穴は、略号が必ずしも一意に読めるとは限らないことです。二文字という短さのため、別の意味と衝突する可能性があります。文脈のない文字列だけを見て州だと断定しないほうが安全です。州の上位にある国と行政区分の関係はISO 国家コードと行政区コードで整理しています。
郵便番号の四桁の拡張は何を表すのか
五桁の数字だけでも配達区域は特定できますが、四桁を足した形では、その区域のなかのより細かい単位を示します。この拡張は必須ではありません。拡張を省略した五桁だけの値も有効です。
したがって、データを扱うときは拡張の有無を両方受け入れます。拡張を常に要求する作りにすると、拡張を持たない値が弾かれます。逆に、拡張を常に削る作りにすると、細かい配達情報を捨てることになります。桁数と文字種の扱いは郵便番号の書式で扱った内容と共通です。
例外的な宛先はある?
あります。軍事郵便と外交郵便には、通常とは異なる住所の形が使われます。海外の基地や艦船、在外公館宛の郵便は、州の略号に相当する特別な符号と、専用の都市名を組み合わせた形で書かれます。これらは国内の配送網とは別の経路で扱われるため、通常の住所と混ぜて解釈すると誤りになります。
海外領土にも通常と異なる点があります。本土の州と同じ扱いにならない地域があり、州の欄に略号を書く場合と、国として扱う場合が混在します。国際的な住所フォームでは、こうした宛先を別の区分として持たせるか、少なくとも通常の州の一覧から除外しておく配慮が要ります。
開発者向け: 住所欄を分割するときの判断
アメリカの住所を自由入力の一行で受け取ると、あとで州や郵便番号で検索できません。一方で、最初から細かく分割しすぎると、想定外の書式が入らなくなります。実際のところ、通り番地の部分は一行のまま保持し、市、州、郵便番号だけを別の欄に分ける方法が扱いやすいことが多いです。通り名には部屋番号や棟名、私書箱の番号が混ざるため、これ以上分けても安定しません。
州の欄は、入力の段階で略号へ寄せるか、正式名称のまま受けておいて保存時に寄せるかを選びます。どちらでも構いませんが、混在を許すのは避けてください。混在した瞬間に、州で絞り込む検索が使えなくなります。
郵便番号の検証では、五桁と九桁の両方を通します。桁数を数えて弾くだけの実装は、拡張付きの値を誤って拒否します。
番地の位置が住所の先頭にあるという前提も、コードに埋め込まないほうが無難です。同じことを扱う仕組みは国際住所の書き方で扱っています。
確認しておきたいテスト観点
アメリカの住所を扱うなら、次の値を用意しておくと確認が早くなります。部屋番号付きの住所、私書箱だけの住所、五桁のみの郵便番号、拡張付きの郵便番号、軍事郵便の宛先、そして海外領土の宛先です。この六件を通せば、分割の仕方と検証の緩さが同時に確かめられます。件数が多くて手間なときは、テスト固定装置の住所データの考え方で共通化できます。
次のステップ
まず、自分の実装が郵便番号の拡張を受け入れるかを確かめてください。拒否していたら、そこは実際の利用者がつまずく箇所です。次に、州の欄に略号と正式名称が混ざっていないかを見ます。実データに近い形のサンプルが必要なときはランダム住所生成でアメリカを選ぶと、番地から郵便番号までの並びをそのまま確認できます。