米国住所には決まった順序があります。受取人、番地、任意の部屋番号などの二次情報、そして市区町村・2文字の州コード・ZIPコードを1行にまとめます。フォーマットはこれで全部です。米国住所フォームのバグのほとんどは、これらの要素のどれかを移動したり、専用のフィールドをでっち上げたり、ZIPを文字列ではなく数値として扱ったりすることから生じます。
このガイドでは、住所ブロックを行ごとに見ていき、その後で実際のインシデントを引き起こす部分を扱います。州および準州のコード、ZIPとZIP+4の違い、軍用および準州の住所、そしてUSPSが郵便物で受け付けるものとWebフォームが受け付けるべきものの違いです。以下のルールはすべて、テストでアサートできるものです。
米国住所ブロックの5行
国内郵便ではシンプルなブロックを使います。受取人名が最初、番地が2番目、二次情報(部屋番号など)がある場合は3番目、そして市区町村・州・ZIPが4行目を共有します。国名の行は国内郵便では省略し、米国外に送る場合にのみ追加します。
仕分け装置はブロックを下から上へ読み取ります。ZIP、次に州、次に市区町村、次に番地です。だからこそZIPは独立した行ではなく市区町村と州と同じ行に置くべきであり、市区町村と番地の間に余計な行があると自動読み取りが壊れるのです。Webフォームは郵便ブロックを正確に模倣する必要はありませんが、保存する値はきれいにそれへ対応づけられるべきです。
| 行 | 内容 | 例 |
|---|---|---|
| 1 | 受取人名 | Dana Whitfield |
| 2 | 番地またはPO box | 1420 SW Alder St |
| 3 | 二次情報(ある場合) | Apt 7B |
| 4 | 市区町村、州コード、ZIP | Portland, OR 97205 |
| 5 | 国名、国際郵便のみ | United States |
住所1行目と住所2行目
1行目は配送行です。建物番号、通り名、および方向接頭辞や通り種別の接尾辞を含みます。2行目は二次情報の指定子です。アパート、スイート、階、部屋、ユニット、建物、部署などです。PO boxが配送地点である場合は配送行なので、2行目ではなく1行目に置きます。
ほとんどの不具合を防ぐルールはシンプルです。1行に2つの異なる概念を決して入れないこと。「123 Main St Apt 4」は1つのフィールドに偽装した2つのフィールドであり、下流のすべての利用者に再パースを強います。逆に、番地行が長すぎたからといって市区町村を2行目に入れてはいけません。フォームが1行目を100文字に制限する必要があるなら、それはUIの制約であり、データを移す許可ではありません。
- 1行目:番地番号、方向接頭辞、通り名、接尾辞、方向接尾辞
- 2行目:Apt、Ste、Unit、Fl、Rm、Bldg、Deptの後に識別子
- 二次情報がない場合、2行目は空のままにする。N/Aやダッシュを書かない
- PO boxが配送地点である場合は1行目
- 会社名や注意行は番地行と分けて保持する
市区町村、州、ZIPの行
これら3つの値はカンマ区切りでまとめ、州コードとZIPの間には半角スペースを1つ入れます。州は常にUSPSの2文字コードを大文字で、ピリオドなしで書きます。「Oregon」はデータベースの地域名カラムに保持するならそこに置きますが、郵便行ではORを使います。
ZIPは文字列です。5桁で、任意でハイフンとZIP+4用の4桁が続きます。先頭のゼロは意味があります。02134はボストンであり、整数カラムでは2134として保存されます。スキーマにすでに整数のZIPカラムがあるなら、テキストへの移行は最初のニューイングランドの顧客の後ではなく前にやる価値があります。
USPSは郵便物では市区町村名を大文字にすることを好みますが、フォームは混在ケースで保存し、印刷時にのみ大文字にすべきです。市区町村をZIPに対して検証すべきでないもう1つの理由は、1つの配送エリアが複数の許容される市区町村名を認識できることです。したがって不一致はよくあり、送信された住所が不正になるわけではありません。各フィールドの形を検証し、郵便ブロックをレンダリングし、市区町村とZIPの一致は実際にライセンスした参照データセットに任せてください。
| 値 | フォーマット | 例 |
|---|---|---|
| 市区町村 | 自由テキスト、混在ケース | Portland |
| 州 | 大文字2文字 | OR |
| ZIP | 5桁 | 97205 |
| ZIP+4 | 5桁、ハイフン、4桁 | 97205-2515 |
| 州とZIP | 間に半角スペース1つ | OR 97205 |
州、地区、準州のコード
USPSは50の州コードに加えて、コロンビア特別区と有人準州のコードを公開しています。50州だけを列挙するフォームはプエルトリコ、グアム、米領バージン諸島、アメリカ領サモア、北マリアナ諸島を拒否します。これは米国市民の住所のかなりの割合にとって実際のコンバージョンバグです。
ANSIやISOの区分と異なる場合は、それらではなくUSPSコードを使ってください。USPSコードは郵便物に表示されるものであり、住所検証サービスが返すものです。地域フィールドで完全な州名を受け入れるのは、まず正規化する場合だけにし、米国に隣接するすべての準州でコードが常に2文字とは限らないと想定しないでください。軍用郵便はAA、AE、APを使い、これらは州ではありません。
| コード | 名前 | 備考 |
|---|---|---|
| DC | District of Columbia | 州ではないが有効な地域コード |
| PR | Puerto Rico | 5桁ZIP、006xxから009xx |
| VI | US Virgin Islands | ZIP 008xx |
| GU | Guam | ZIP 969xx。国際発送扱いになることが多い |
| AS | American Samoa | ZIP 96799 |
| MP | Northern Mariana Islands | ZIP 9695x |
| AA | Armed Forces Americas | 軍用郵便、ZIP 340xx |
| AE | Armed Forces Europe | 軍用郵便、ZIP 09xxx |
| AP | Armed Forces Pacific | 軍用郵便、ZIP 96xxx |
ZIPとZIP+4の構造
5桁のZIPは配送エリアを識別し、通常は街区のグループ、建物、または地方配送路です。ZIP+4は4桁を追加し、街区の片側、大規模建物の階、または特定の配達経路に絞り込みます。どちらも文字列です。ZIP+4のハイフンは慣例的な表示の一部であり、値がフォームを往復する際に保持されるべきです。
市区町村のZIP範囲を原理から推測することはできず、ZIPから市区町村への完全な表を手作業で作るべきでもありません。安価にアサートできるのは形です。5桁、任意でハイフンと4桁、文字なし、先頭の国番号なし。存在確認が必要なら、このサイトは米国ZIPを40,979行のデータセットに対してチェックしますが、それは存在確認にすぎません。
| 入力 | 有効 | 理由 |
|---|---|---|
| 97205 | はい | 単純な5桁ZIP |
| 97205-2515 | はい | ハイフン付きZIP+4 |
| 02134 | はい | 先頭のゼロは重要 |
| 9720 | いいえ | 4桁 |
| 97205 2515 | いいえ | ZIP+4でハイフンの代わりにスペース |
| 97205-251 | いいえ | ハイフンの後が3桁 |
国際郵便と国名の行
米国から出る郵便では、国名を大文字で最終行に単独で書き、米国住所はその上で国内の形を保ちます。国際郵便の受取では「USA」も許容されますが、自動仕分けには完全な国名がより安全な選択です。
Webフォーム内では、国フィールドがフォーマットも駆動すべきです。ユーザーがカナダを選んだら、州リストは州(province)になり、ZIPラベルは郵便番号になり、パターンも変わる必要があります。米国を選んだら、フォームは6文字の郵便番号を切り捨てるのではなく拒否すべきです。国は飾りのドロップダウンではありません。
- 国名の行は最後に置き、国外向け郵便では大文字にする
- 国内住所の途中に「United States」を追加しない
- 国を変更したら地域フィールドをリセットし、古い値を保持しない
- 国を変更したら新しいパターンで郵便番号検証を再実行する
アパート、PO box、地方配送路、軍用住所
二次情報には標準の指定子を使います。APT、STE、UNIT、FL、RM、BLDG、DEPTです。USPSは「STE 200」のように略語、スペース、識別子の順を好みます。「Suite」のような長い語も受け入れられますが、2行目の30文字制限で切り捨てられる可能性が高くなります。
地方やハイウェイの住所は「RR 2 BOX 145」や、地元の911当局が割り当てた通りの形式の番号を使うことがあります。軍用郵便はAA、AE、APのコードと340xx、09xxx、96xxx範囲のZIPを使い、市区町村フィールドにはAPOまたはFPOの指定が入ります。例えば「APO AE 09021」です。これらはいずれも「番号の後に通り名」と仮定するフォーマッタで並べ替えるべきではありません。
| 住所タイプ | 例 | 注意点 |
|---|---|---|
| アパート | 1420 SW Alder St Apt 7B | ユニット識別子は英数字 |
| スイート | 600 Congress Ave Ste 1400 | 1行目に統合しない |
| PO box | PO Box 4421 | 有効な1行目、通りは不要 |
| 地方配送路 | RR 2 Box 145 | 通常の意味での番地番号がない |
| 軍用 | Unit 2050 Box 4190, APO AE 09021 | AA、AE、APは州ではない |
よくある質問
- 受取人、番地、任意のアパートやスイート、そして市区町村・2文字の州・ZIPを1行にまとめます。国名の行は国際郵便の場合にのみ追加します。
- いいえ。5桁は郵便物にもほとんどのフォームにも有効です。提供された場合はZIP+4を受け入れ、ハイフンを保持し、値全体をテキストとして保存してください。
- 50州に加えてDC、PR、VI、GU、AS、MPなどの準州コード、さらに軍用コードのAA、AE、APがあります。50項目のドロップダウンは不完全です。
- はい、配送地点である場合は有効です。1行目に入り、フォームは通り番号を併記するよう要求すべきではありません。
- いいえ。先頭のゼロが重要で、ZIP+4にはハイフンが含まれます。値を長さ制限付きの文字列として保存し、数値ではなく形を検証してください。
米国住所はどの順序で書きますか?+
ZIP+4は必須にすべきですか?+
州コードはいくつありますか?+
PO boxは有効な番地ですか?+
ZIPコードを整数で保存できますか?+
例は合成データです。生成された住所を本人確認、アカウント登録、配送に使用しないでください。