Подтвердить что ты не робот

Почтовый индекс (почтовый индекс США)

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

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

Я написал немного о почтовых индексах в боковом проекте в моей вики/блоге:

https://benc.fogbugz.com/default.asp?W24

Существует также новый, странный тип почтового индекса.

https://benc.fogbugz.com/default.asp?W42

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

4b9b3361

Ответ 1

Буквенное выражение Javascript:

US Zip Codes: /(^\d{5}$)|(^\d{5}-\d{4}$)/

var isValidZip = /(^\d{5}$)|(^\d{5}-\d{4}$)/.test("90210");

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

Ответ 2

function isValidUSZip(sZip) {
   return /^\d{5}(-\d{4})?$/.test(sZip);
}

Ответ 3

Здесь функция JavaScript, которая проверяет почтовый индекс ZIP/почтовый индекс на основе кода страны. Это позволяет несколько либеральное форматирование. Вы можете добавить случаи и для других стран. Обратите внимание, что случай по умолчанию позволяет пустые почтовые коды, так как не все страны используют их.

function isValidPostalCode(postalCode, countryCode) {
    switch (countryCode) {
        case "US":
            postalCodeRegex = /^([0-9]{5})(?:[-\s]*([0-9]{4}))?$/;
            break;
        case "CA":
            postalCodeRegex = /^([A-Z][0-9][A-Z])\s*([0-9][A-Z][0-9])$/;
            break;
        default:
            postalCodeRegex = /^(?:[A-Z0-9]+([- ]?[A-Z0-9]+)*)?$/;
    }
    return postalCodeRegex.test(postalCode);
}

FYI Вторая ссылка, относящаяся к сумасшедшим почтовым индексам, кажется, была шутка в апреле.

Ответ 4

Если вы делаете для Канады, помните, что не все буквы действительны

Эти буквы недействительны: D, F, I, O, Q или U И буквы W и Z не используются в качестве первой буквы. Также некоторые люди используют дополнительное пространство после третьего символа.

Вот регулярное выражение для канадского почтового кода:

new RegExp(/^[abceghjklmnprstvxy][0-9][abceghjklmnprstvwxyz]\s?[0-9][abceghjklmnprstvwxyz][0-9]$/i)

Последний я делает регистр нечувствительным.

Ответ 5

Не утруждайте себя "проверкой" почтовых индексов на 5 цифр, они устарели, как описано в здесь

Правильная проверка адресов и ZIP + 4 кода выполняется с помощью программного обеспечения CASS для баз данных USPS.

Ответ 6

Здесь один из jQuery Validate plugin additional-methods.js file...

jQuery.validator.addMethod("zipUS", function(value, element) {
    return /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(value);
}, "Please specify a valid US zip code.");

EDIT. Поскольку указанный код является частью плагина jQuery Validate, он зависит от метода .addMethod().

Удалите зависимость от плагинов и сделайте ее более общей....

function checkZip(value) {
    return (/(^\d{5}$)|(^\d{5}-\d{4}$)/).test(value);
};

Пример использования http://jsfiddle.net/5PNcJ/

Ответ 7

Это хорошее решение JavaScript для проверки, которое у вас есть:

/\b\d{5}-\d{4}\b/

Ответ 8

Как я работаю в почтовой отрасли в течение 17 лет, я видел все виды ввода данных в этой области. Мне интересно, сколько людей не знают их адрес, как это определено USPS. Я до сих пор вижу такие адреса:

Колледж XYZ
ИТ-отдел
Город, Санкт-ZIP

Худшая часть - это почта, на которую отправлено 99% времени, а другой 1%, ну, что возвращается для неполного адреса, как следует.

В более раннем сообщении кто-то упомянул USPS CASS, что программное обеспечение не бесплатно.

В regex тестер zip-кода хорош, я использую выражения для определения почтового индекса US, CA, UK или AU. Я видел выражения для Японии и других, которые только добавляют проблемы при выборе правильной страны, к которой принадлежит zip.

На сегодняшний день лучше всего использовать Drop Down Lists для State и Country. Затем используйте таблицы для дальнейшей проверки, если необходимо. Чтобы дать вам представление, есть 84052 приемлемых комбинаций US City St Zip всего за первые 5 цифр. В соответствии с ISO существует 249 действующих стран, и существует 65 государств и территорий США.

Существуют только военные, почтовые ящики и уникальные классы почтового индекса. Здесь применяется KISS.

Ответ 9

Предложите вам ознакомиться с API-интерфейсами адресов USPS. Вы можете проверить почтовый индекс и получить стандартные отформатированные адреса. https://www.usps.com/business/web-tools-apis/address-information.htm

Ответ 10

Один из способов проверить действительный почтовый код Канады -

function isValidCAPostal(pcVal) {
   return ^[A-Za-z][0-9][A-Za-z]\s{0,1}[0-9][A-Za-z][0-9]$/.test(pcVal);
}

Надеюсь, это поможет кому-то.

Ответ 11

Чтобы продолжить мой ответ, UPS и FedEx не могут доставить PO BOX, не используя USPS в качестве конечного обработчика. Большинство программ для доставки не позволят почтовому ящику PO для стандартных услуг. Примеры почтовых ящиков PO Box 00604 - RAMEY, PR и 06141 - HARTFORD, CT.

Вся необходимая проверка почтовых индексов действительно может быть вопросом о том, как далеко вы продвигаетесь, каков бюджет, какова временная линия.

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

Также имейте в виду, что USPS не любит знаки препинания, такие как N. Market St., а также имеет очень конкретные допустимые сокращения для таких вещей, как Lane, Place, North, Corporation и т.д.

Ответ 13

Вы имеете в виду проверку адреса? Как и предыдущий ответ Майка, вам нужно обслуживать 95%.

Что вы можете сделать, когда пользователь выбирает свою страну, а затем активирует проверку. Проверка адреса и проверка почтового индекса - это две разные вещи. Проверка ZIP - это просто подтверждение его целого числа. Проверка адреса проверяет фактический адрес для точности, предпочтительно для рассылки.

Ответ 14

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

/^ ([A-Za-Z] [0-9] [A-Za-Z])\S * ([0-9] [A-Za-Z] [0-9]) $/