Un indirizzo USA ha un ordine fisso: destinatario, indirizzo stradale, eventuale unità secondaria, poi città, stato in due lettere e codice ZIP su un'unica riga. Questo è l'intero formato. Quasi ogni bug in un form di indirizzi USA deriva dallo spostamento di uno di questi elementi, dall'invenzione di un campo per esso o dal trattamento dello ZIP come numero anziché come stringa.
Questa guida esamina il blocco riga per riga, poi copre le parti che causano incidenti reali: codici di stato e territori, ZIP versus ZIP+4, indirizzi militari e territoriali, e la differenza tra ciò che USPS accetta sulla posta e ciò che un form web dovrebbe accettare. Ogni regola di seguito è qualcosa che puoi verificare in un test.
Il blocco indirizzo USA a cinque righe
La posta nazionale usa un blocco semplice. Il nome del destinatario va per primo, l'indirizzo stradale secondo, l'unità secondaria terza quando esiste, e città, stato e ZIP condividono la quarta riga. La riga del paese è omessa per la posta nazionale e aggiunta solo quando l'invio lascia gli Stati Uniti.
Le apparecchiature di smistamento leggono il blocco dal basso verso l'alto: ZIP, poi stato, poi città, poi via. Ecco perché lo ZIP appartiene alla stessa riga di città e stato anziché su una riga propria, e perché una riga estranea tra città e via può compromettere la lettura automatizzata. Un form web non deve necessariamente rispecchiare esattamente il blocco postale, ma i valori che memorizza dovrebbero mapparsi in modo pulito su di esso.
| Riga | Contenuto | Esempio |
|---|---|---|
| 1 | Nome del destinatario | Dana Whitfield |
| 2 | Indirizzo stradale o casella postale | 1420 SW Alder St |
| 3 | Unità secondaria, se presente | Apt 7B |
| 4 | Città, codice di stato, ZIP | Portland, OR 97205 |
| 5 | Paese, solo per l'internazionale | United States |
Riga indirizzo 1 versus riga indirizzo 2
La riga 1 è la riga di consegna: numero civico, nome della via e qualsiasi suffisso direzionale o di tipo di via. La riga 2 è il designatore dell'unità secondaria: appartamento, suite, piano, stanza, unità, edificio o dipartimento. Una casella postale è una riga di consegna quando è il punto di consegna, quindi va sulla riga 1, non sulla riga 2.
La regola che previene la maggior parte dei difetti è semplice: non mettere mai due concetti diversi su una riga. "123 Main St Apt 4" sono due campi che fingono di essere uno, e costringe ogni consumatore a valle a ri-analizzare. Al contrario, non mettere la città sulla riga 2 perché la riga della via era troppo lunga. Se il form deve limitare la riga 1 a 100 caratteri, è un vincolo dell'interfaccia, non un permesso per spostare i dati.
- Riga 1: numero civico, predirezionale, nome della via, suffisso, postdirezionale
- Riga 2: Apt, Ste, Unit, Fl, Rm, Bldg, Dept, seguiti dall'identificatore
- La riga 2 resta vuota quando non c'è unità secondaria; non scrivere mai N/A o un trattino
- Una casella postale è la riga 1 quando la casella è il punto di consegna
- Tieni una riga azienda o attenzione separata dalla riga della via
La riga città, stato, ZIP
Questi tre valori vanno insieme, separati da virgole, con un singolo spazio tra il codice di stato e lo ZIP. Lo stato è sempre il codice USPS in due lettere, maiuscolo, senza punto. "Oregon" appartiene a una colonna del database per il nome della regione se ne hai una, ma la riga postale usa OR.
Lo ZIP è una stringa. È di cinque cifre, opzionalmente seguito da un trattino e altre quattro per lo ZIP+4. Gli zeri iniziali sono reali: 02134 è Boston, e una colonna intera lo memorizza come 2134. Se il tuo schema ha già una colonna ZIP di tipo intero, la migrazione a testo vale la pena farla prima del primo cliente del New England, non dopo.
USPS preferisce il nome della città in maiuscolo sulla posta, ma un form dovrebbe memorizzare in maiuscolo/minuscolo e convertire in maiuscolo solo al momento della stampa. Un'altra ragione per non validare la città rispetto allo ZIP: una singola area di consegna può riconoscere diversi nomi di città accettabili, quindi una discrepanza è comune e non rende l'indirizzo inviato malformato. Valida la forma di ogni campo, genera il blocco postale e lascia la corrispondenza città-ZIP a un dataset di riferimento che hai effettivamente licenziato.
| Valore | Formato | Esempio |
|---|---|---|
| Città | Testo libero, maiuscolo/minuscolo | Portland |
| Stato | Due lettere maiuscole | OR |
| ZIP | 5 cifre | 97205 |
| ZIP+4 | 5 cifre, trattino, 4 cifre | 97205-2515 |
| Stato più ZIP | Uno spazio tra | OR 97205 |
Codici di stato, distretto e territorio
USPS pubblica 50 codici di stato più il Distretto di Columbia e i territori abitati. I form che elencano solo 50 stati rifiutano Porto Rico, Guam, le Isole Vergini Americane, Samoa Americane e le Isole Marianne Settentrionali, il che è un vero bug di conversione per una quota significativa di indirizzi di cittadini statunitensi.
Usa i codici USPS anziché le suddivisioni ANSI o ISO dove differiscono. Il codice USPS è quello che appare sulla posta ed è quello che restituiscono i servizi di validazione degli indirizzi. Non accettare nomi completi di stato nel campo regione a meno che tu non li normalizzi prima, e non presumere che il codice sia sempre di due lettere per ogni territorio adiacente agli USA: la posta militare usa AA, AE e AP, che non sono affatto stati.
| Codice | Nome | Note |
|---|---|---|
| DC | District of Columbia | Non è uno stato; comunque un codice di regione valido |
| PR | Puerto Rico | ZIP a cinque cifre, da 006xx a 009xx |
| VI | US Virgin Islands | ZIP 008xx |
| GU | Guam | ZIP 969xx; spesso spedito internazionalmente |
| AS | American Samoa | ZIP 96799 |
| MP | Northern Mariana Islands | ZIP 9695x |
| AA | Armed Forces Americas | Posta militare, ZIP 340xx |
| AE | Armed Forces Europe | Posta militare, ZIP 09xxx |
| AP | Armed Forces Pacific | Posta militare, ZIP 96xxx |
Struttura ZIP e ZIP+4
Un ZIP a cinque cifre identifica un'area di consegna, di solito un gruppo di isolati, un edificio o un percorso rurale. ZIP+4 aggiunge quattro cifre che lo restringono a una facciata di isolato, a un piano di un grande edificio o a un percorso specifico del portalettere. Entrambi sono stringhe; il trattino nello ZIP+4 fa parte della presentazione convenzionale e dovrebbe essere preservato quando il valore passa attraverso un form.
Non puoi dedurre un intervallo ZIP per una città da principi primi, e non dovresti costruire a mano una tabella completa ZIP-città. Ciò che puoi verificare a basso costo è la forma: cinque cifre, trattino opzionale e quattro cifre, nessuna lettera, nessun prefisso di paese iniziale. Se hai bisogno dell'esistenza, questo sito verifica gli ZIP USA rispetto a un dataset di 40.979 righe, che è un controllo di esistenza e nulla più.
| Input | Valido | Perché |
|---|---|---|
| 97205 | Sì | ZIP semplice a cinque cifre |
| 97205-2515 | Sì | ZIP+4 con trattino |
| 02134 | Sì | Lo zero iniziale è significativo |
| 9720 | No | Quattro cifre |
| 97205 2515 | No | Spazio invece del trattino nello ZIP+4 |
| 97205-251 | No | Tre cifre dopo il trattino |
Posta internazionale e riga del paese
Per la posta che lascia gli Stati Uniti, il nome del paese è scritto in maiuscolo su una propria riga finale, e l'indirizzo USA mantiene la sua forma nazionale sopra di essa. "USA" è accettabile sulla posta internazionale in entrata ma il nome completo del paese è la scelta più sicura per lo smistamento automatizzato.
All'interno di un form web il campo paese dovrebbe anche guidare la formattazione. Se un utente seleziona Canada, l'elenco degli stati deve diventare province, l'etichetta ZIP deve diventare codice postale e il pattern deve cambiare. Se seleziona Stati Uniti, il form dovrebbe rifiutare un codice postale di sei caratteri anziché troncarlo. Il paese non è un menu a tendina decorativo.
- La riga del paese va per ultima e in maiuscolo per la posta in uscita
- Non aggiungere "United States" nel mezzo di un indirizzo nazionale
- Cambiare paese deve azzerare il campo regione, non mantenere il vecchio valore
- Cambiare paese deve rieseguire la validazione postale con il nuovo pattern
Indirizzi con appartamento, casella postale, percorso rurale e militari
Le unità secondarie usano designatori standard: APT, STE, UNIT, FL, RM, BLDG, DEPT. USPS preferisce l'abbreviazione con uno spazio e poi l'identificatore, come in "STE 200". Le parole per esteso come "Suite" sono accettate ma hanno maggiori probabilità di essere troncate da un limite di 30 caratteri sulla riga 2.
Gli indirizzi rurali e autostradali possono usare "RR 2 BOX 145" o un numero in stile stradale assegnato dall'autorità locale del 911. La posta militare usa il codice AA, AE o AP più uno ZIP nell'intervallo 340xx, 09xxx o 96xxx, e il campo città porta la designazione APO o FPO, ad esempio "APO AE 09021". Nessuno di questi dovrebbe essere riordinato da un formattatore che presume "numero poi nome della via".
| Tipo di indirizzo | Esempio | Insidia |
|---|---|---|
| Appartamento | 1420 SW Alder St Apt 7B | L'identificatore dell'unità è alfanumerico |
| Suite | 600 Congress Ave Ste 1400 | Non unire alla riga 1 |
| Casella postale | PO Box 4421 | Riga 1 valida, nessuna via richiesta |
| Percorso rurale | RR 2 Box 145 | Nessun numero civico nel senso usuale |
| Militare | Unit 2050 Box 4190, APO AE 09021 | AA, AE, AP non sono stati |
Domande
- Destinatario, indirizzo stradale, eventuale appartamento o suite, poi città, stato in due lettere e ZIP su un'unica riga. La riga del paese si aggiunge solo per la posta internazionale.
- No. Cinque cifre sono valide per la posta e per la maggior parte dei form. Accetta ZIP+4 quando fornito, mantieni il trattino e memorizza l'intero valore come testo.
- Cinquanta stati, più DC, più codici di territorio come PR, VI, GU, AS e MP, più i codici militari AA, AE e AP. Un menu a tendina con 50 voci è incompleto.
- Sì, quando è il punto di consegna. Appartiene alla riga 1 e il form non dovrebbe richiedere un numero civico insieme ad essa.
- No. Gli zeri iniziali contano e ZIP+4 contiene un trattino. Memorizza il valore come stringa con un limite di lunghezza e valida la forma, non il valore numerico.
In che ordine va un indirizzo USA?+
ZIP+4 dovrebbe essere obbligatorio?+
Quanti codici di stato ci sono?+
Una casella postale è un indirizzo stradale valido?+
Posso memorizzare un codice ZIP come intero?+
Gli esempi sono sintetici. Non usare un indirizzo generato per verifiche di identità, registrazione di account o consegne.