Каков окончательный почтовый индекс и регулярное выражение почтового индекса? - PullRequest
182 голосов
/ 23 февраля 2009

Я ищу окончательный почтовый индекс и регулярное выражение почтового индекса. Я ищу что-то, что охватит большую часть (надеюсь, весь мир).

Ответы [ 20 ]

5 голосов
/ 12 мая 2012
.* 

Big Jump забыл про разрывы строк, пробелы и управляющие символы.

Международные почтовые индексы являются своего рода проблемой остановки.

3 голосов
/ 08 марта 2017

Как уже отмечали другие, одно правило для управления ими всеми маловероятно. Однако вы можете создавать регулярные выражения для любого количества стран, используя необходимую информацию от Всемирного почтового союза - малоизвестного агентства ООН.

Например, вот несколько правил форматирования адресов, включая почтовый индекс, для нескольких стран (формат PDF):

2 голосов
/ 23 февраля 2009

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

Обе компании предоставляют возможности поиска адресов через программируемый API.

1 голос
/ 13 ноября 2012

Это очень простой RegEx для проверки почтового индекса США (не ZipCode Plus Four):

(?!([089])\1{4})\d{5}

Кажется, все пять цифр являются действительными почтовыми индексами, кроме 00000, 88888 & 99999.

Я проверил этот RegEx с http://regexpal.com/

SP

1 голос
/ 12 мая 2012

Кто-то спрашивал о списке форматирования почтовых адресов, и я думаю, это то, что он искал ...

Справочное руководство Фрэнка по почтовым адресам: http://www.columbia.edu/~fdc/postal/ Однако не очень помогает с проблемами на уровне улицы.

Моя работа использует несколько инструментов, чтобы помочь с этим: - Услуги Lexis-Nexis, включая поиск NCOA (стандартизация адресов будет бесплатной) - «Мелисса Дата» http://www.melissadata.com

1 голос
/ 23 февраля 2009

Почему вы это делаете и почему вас это волнует? Как отметил Том Риттер, не имеет значения, есть ли у вас вообще какой-либо почтовый индекс, тем более, действительный он или нет, до тех пор, пока вы действительно не собираетесь отправлять что-либо по этому адресу. Даже если вы ожидаете, что вы отправите им что-нибудь когда-нибудь , это не значит, что вам нужен почтовый индекс сегодня .

1 голос
/ 23 февраля 2009

Учитывая, что в каждой стране так много граничных случаев (например, лондонские адреса могут использовать немного другой формат, чем в остальной части Великобритании), я не думаю, что существует конечное регулярное выражение, отличное от

[0-9a-zA-Z]+

Лучше идти по довольно широкой схеме (ну, не такой широкой, как указано выше), или относиться к каждой стране / региону со своей собственной структурой!

ОБНОВЛЕНИЕ: Однако может быть возможно динамически построить регулярное выражение, основанное на множестве более мелких, специфичных для региона правил - хотя и не уверен насчет производительности!

Множество шаблонов для конкретных стран можно найти на сайте RegExLib .

1 голос
/ 12 мая 2009

Для точного почтового индекса существуют и другие причины, помимо доставки. Туристические агентства, совершающие туры, которые пересекают границы (за исключением Еврозоны, конечно), нуждаются в этой информации заблаговременно, чтобы предоставить властям. Часто эта информация вводится агентом, который может или не может быть знаком с такими вещами. ЛЮБОЙ метод, который может сократить количество ошибок, - это хорошая идея & trade;

Однако написание регулярного выражения, которое охватывало бы все почтовые индексы в мире, было бы безумным.

1 голос
/ 23 февраля 2009

Как уже отмечалось, вариации по всему миру огромны. И даже если что-то, что соответствует шаблону, не означает, что оно существует.

Тогда, конечно, есть много мест, где почтовые индексы не используются (например, много или Ирландия).

0 голосов
/ 07 июня 2019

Если Zip Code допускает символы и цифры (алфавитно-цифровые), то при совпадении будет использоваться нижнее регулярное выражение, 5, 9 или 10 буквенно-цифровых символов с одним переносом (-):

^([0-9A-Za-z]{5}|[0-9A-Za-z]{9}|(([0-9a-zA-Z]{5}-){1}[0-9a-zA-Z]{4}))$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...