Меню

Структура американского адреса: дом, улица, штат, индекс

Структура американского адреса: номер дома, название улицы, номер помещения, двухбуквенный код штата и индекс. Разбираем каждую часть.

Опубликовано

  • тестовые данные
  • адреса

Структура американского адреса выглядит простой, пока не начинаешь проверять введённое: строка с номером дома и улицей, город, двухбуквенный код штата и индекс, к которому иногда добавляют ещё четыре цифры. Простота обманчива, потому что за каждым элементом стоит отдельное правило и свой набор ошибок ввода. Ниже разберём, как читать такую запись, почему нельзя придумывать сокращения штатов и какие адреса существуют за пределами пятидесяти штатов.

Из чего состоит строка адреса

Первым идёт номер дома, за ним название улицы. Порядок именно такой, и это отличие от многих европейских стран, где номер ставят после названия: при чтении адреса слева направо вы сразу получаете точку на улице.

Третьим элементом может идти номер помещения или офиса. Он отделяется словом-маркером — квартира, офис, этаж, — и это важно: голое число после улицы ничего не значит, пока не сказано, что это. В длинных зданиях с несколькими входами указывают ещё и номер корпуса или строения.

Дальше строка заканчивается: город, затем код штата, затем индекс. Запятая между городом и кодом штата — привычная, но не обязательная деталь.

Зачем нужны двухбуквенные коды штатов

Двухбуквенный код существует ради машинной обработки. Полное название штата длиннее, допускает варианты написания и легко путается с названием города — например, когда город и штат называются одинаково. Двухбуквенная запись однозначна и предсказуема по длине.

Отсюда практическое следствие, важное для тестирования: правильные сокращения перечислены в официальном перечне, и придумывать свои нельзя. Сокращение, придуманное разработчиком или пользователем, не совпадёт ни с одной записью справочника, и адрес перестанет проходить проверку, хотя выглядит правдоподобно.

Второй практический момент: код штата и индекс должны быть согласованы. Несовпадение этих двух полей — классический пример ошибки ввода, которую стоит держать в тестовом наборе отдельно.

Двухбуквенный код штата — не сокращение, придуманное для удобства, а значение из официального перечня. Такой перечень закрыт: в нём перечислены все допустимые сочетания, и любое другое сочетание букв корректным кодом не является. Проверять его шаблоном бессмысленно — под шаблон попадёт и то, чего в перечне нет, поэтому проверка строится по таблице значений.

Второе следствие закрытости перечня: код нельзя вывести из названия штата по правилам. Похожие названия дают разные коды, а одинаковые первые буквы ничего не гарантируют. Единственный надёжный источник — тот же официальный список, который используется в справочнике формы.

В тестовых данных это удобно превратить в проверку: подставьте в поле сочетания букв, допустимые по форме, но отсутствующие в перечне, и посмотрите, ловит ли их валидация.

Что даёт расширение индекса?

Базовый индекс состоит из пяти цифр и определяет зону доставки. Дополнительные четыре цифры уточняют участок внутри этой зоны: они сужают область до конкретной группы адресов, что ускоряет сортировку.

Для отправителя расширение необязательно, и большинство людей его не знает. Поэтому форма должна спокойно принимать и короткий вариант, и полный, а не требовать четыре дополнительные цифры у всех подряд. При проверке же стоит помнить, что поле содержит разное количество знаков в зависимости от того, какой вариант ввёл пользователь.

Бывают ли адреса за пределами пятидесяти штатов?

Да, и это не курьёз. Существуют адреса на островных и зарубежных территориях, а также в военных подразделениях, которые обслуживаются отдельно. У них свои обозначения в поле кода, и они не входят в обычный перечень штатов.

Для формы это означает простой вывод: если вы принимаете адреса только внутри страны, ограничьте список штатов явно и вежливо объясните отказ. Если вы пытаетесь охватить всё, справочник кодов должен включать и эти обозначения, иначе часть корректных адресов будет отвергнута без причины.

Индекс в американском адресе состоит из основной части и необязательного уточнения, которое отделяется от неё знаком дефис. Основная часть указывает на зону обслуживания, а уточнение сужает её до более мелкого участка — вплоть до группы домов на одной стороне улицы.

Обе части цифровые, и это создаёт знакомую проблему: уточнение легко потерять при копировании, потому что и без него значение выглядит законченным. Форма должна принимать индекс в обоих видах, а не считать второй вариант ошибкой.

Отдельный вопрос — где хранить разделитель. Ответ простой: нигде. Разделитель относится к оформлению, поэтому в базе логичнее держать части рядом, а дефис подставлять при выводе. Иначе поиск по значению без дефиса не найдёт запись, в которой дефис есть.

Как устроен американский адрес в нашем генераторе

Генератор фальшивых адресов собирает адрес США целиком: номер дома, улицу, город, код штата и индекс, причём поля берутся из одной записи, поэтому город не окажется в чужом штате. Отдельно можно посмотреть, как выглядят данные для США в целом.

Эти адреса синтезированы алгоритмом и не соответствуют никакому реальному дому. Их нельзя использовать для отправки корреспонденции или как подтверждение места жительства — только для тестирования форм и демонстраций.

Ещё один узел — номер квартиры или офиса. Его можно вынести в отдельное поле, а можно оставить частью строки адреса. Отдельное поле удобнее: по нему можно сортировать, проверять и выгружать, и оно не превращает основную строку в текст произвольной длины. Но у такого решения есть цена: пользователь не всегда понимает, куда вписывать обозначение, если оно выглядит частью названия улицы, а обязательным это поле делать почти никогда не стоит — часть адресов обходится без него.

Полезно заранее развести части адреса по смыслу — тогда не придётся спорить, куда вписывать уточнение.

Часть адреса Что в ней хранится Обязательна ли
Номер дома и улица основная строка адреса да
Квартира или офис уточнение внутри здания нет
Город населённый пункт да
Код штата значение из закрытого перечня да
Индекс зона обслуживания и уточнение да

Из такой разбивки видно и другое: расширение индекса относится к тому же полю, что и основная часть, а не к отдельной строке.

Что важно разработчику

Первое: код штата проверяйте по таблице, а не по длине. Два символа — необходимое условие, но не достаточное: под него подходит любая пара букв, включая выдуманную.

Второе: согласованность кода штата и индекса — отдельный тестовый случай. Проверьте, как ведёт себя форма, когда оба поля заполнены по отдельности верно, но противоречат друг другу: именно здесь чаще всего выясняется, что проверки полей не связаны между собой.

Третье: решите заранее, где живёт номер помещения. Отдельное поле удобнее для проверки и подсказок, но добавляет шаг; единая строка с улицей привычнее и компактнее. Смешанный вариант, когда номер помещения можно ввести и там, и там, обычно приводит к дублированию. Как такие решения проверяются на форме оформления заказа, разобрано в статье про сценарии оформления.

Четвёртое: не требуйте расширение индекса. Пяти цифр достаточно для большинства сценариев, а обязательное поле с дополнительными знаками отпугнёт тех, кто их не знает. И помните, что проверка адреса, о которой подробнее говорится в статье про проверку и нормализацию, формат подтвердить может, а существование дома — нет.

Что делать дальше

Если вы готовите тестовые данные для формы с американским адресом, возьмите в генераторе несколько записей для США и добавьте к ним два ручных случая: код штата с противоречащим индексом и адрес с расширением индекса. Эти два примера закрывают большинство ошибок, которые иначе всплывают уже в рабочей среде.

Читать дальше

Статьи: Генератор фальшивых адресов