проверить почтовый индекс в JavaScript - PullRequest
2 голосов
/ 07 апреля 2011
<input type="text" id="zipCode" />

как я могу подтвердить, что это правильный почтовый индекс в javascript?

Ответы [ 6 ]

6 голосов
/ 07 апреля 2011

Вы можете сопоставить ввод с этим регулярным выражением.

/^\d{5}(-\d{4})?(?!-)$/

Почтовые индексы США состоят из 5 цифр, за которыми следуют дополнительные 4 цифры.

1 голос
/ 07 апреля 2011

Почтовые индексы отличаются во всем мире .

Самый распространенный способ проверки ввода - это использование регулярных выражений.Читайте о них здесь .

Регулярные выражения в Javascript, в частности здесь .

0 голосов
/ 08 марта 2013

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

Если вы хотите использовать REGEX, убедитесь, что вы учитываете, что некоторые ZIP-коды имеют один или дваведущие нули, которые могут быть удалены некоторыми программами.

0 голосов
/ 08 апреля 2011

Некоторое время назад у меня был клиент, которому нужно было выяснить, находится ли адрес в пределах 30 миль от типа средства доставки. Им нужно было отфильтровать тысячи почтовых индексов, которые может иметь клиент. Таким образом, мы могли бы написать веб-сервис для транспортировки тысяч почтовых индексов туда-сюда ... вместо этого я придумал это регулярное выражение:

/(0(2(1([0-2]\d|3[0-7])|84[01])|3217|403[2-4]|5751|61(0\d|1[0-2])|7039)|1(00(0\d|4[0-8])|52([0-3]|4[0-4])|990[1-5])|2(00([0-1]\d|20)|12(0[1-9]|[1-2]\d|3[0-7])|4517|5813|7565|9029)|3(03(0[1-9]|[1-7]\d|8[01])|250[1-9]|28(0[1-9]|[1-2]\d|3[0-7])|31(2[4-9]|[3-8]\d|90)|58(0[1-9]|1[0-6])|72(0[1-9]|1\d|2[0-2])|953[0-5])|4(170[12]|41(0[1-9]|[1-7]\d)|620[1-9]|9036|973[4-5])|5(03(0[1-9]|1\d|2[0-3])|280[1-9]|32(0[1-9]|1\d|2[0-8])|580[1-8]|740[1-2]|8282|9044)|6(06(0[1-9]|[1-3]\d|4[01])|270[1-9]|31(0[1-9]|[1-3]\d|4[01])|72(0[1-9]|1\d|2[01])|890[12])|7(011[2-9]|22(0[1-9]|1[0-7])|41(0[1-9]|10)|870[1-5])|8(02(0[1-9]|[1-3]\d)|2941|3254|423[1-3]|50(0[1-9]|[1-4]\d|5[0-5])|750[0-6]|95(0[1-9]|1[0-3]))|9(00(0[1-9]|[1-9]\d)|0209|021[0-3]|420[3-9]|68(0[1-9]|[12]\d|30)|72(0[1-9]|1\d|2[0-5])|800[4-9]|95(0[1-9]|1\d|2[0-4])))/

и проверено на это. Если вы действительно хотите, вы можете теоретически сделать то же самое с каждым действующим почтовым индексом:)

0 голосов
/ 07 апреля 2011

Почтовые индексы не совпадают с почтовыми индексами.Вы должны знать, что почтовые индексы в разных странах различны, а в некоторых нет.

Чтобы проверить почтовые индексы США, вы можете просто проверить, что поле содержит 5-значный почтовый индекс или 9-значныйпочтовый индекс с дополнительной чертой после первых 5 цифр.Конечно, это не гарантирует, что этот почтовый индекс действительно существует.

Чтобы проверить, действительно ли введенный почтовый индекс существует, вы можете сохранить на странице список действительных почтовых индексов или допустимых диапазонов почтовых индексов, чтобы проверить, из какихЗанимайте место, и вам нужно будет постоянно обновляться, или вы можете использовать веб-сервис.

Geonames имеет веб-сервис, который может проверять почтовые индексы.

Плагин jQuery Validation можно использовать для простой проверки чисел.

0 голосов
/ 07 апреля 2011

Лучшее, чего вы можете достичь без веб-службы, - это определить, может ли почтовый индекс быть действительным, если вы также знаете страну. Например, почтовый индекс США 00001 действителен с точки зрения содержания пяти цифр, но не является действительным почтовым индексом. Единственный способ по-настоящему узнать, представляет ли данное значение реальный почтовый индекс, - это найти его, используя что-то вроде веб-служб USPS.

API адресной информации USPS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...