Как проверить, что почтовый индекс, введенный пользователем, является правильным почтовым индексом США

Я хочу проверить, что почтовый индекс, введенный пользователем, действителен или нет.

for example пользователь ввел 009876654, и он недействителен, тогда должно быть выдано сообщение об ошибке.

Я знаю, что могу сделать это, используя javascript regulr expression или ajax-zip-code-database.

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

P.S. :- Я не хочу использовать javascript или использовать ajax-zip-code-database


person Salil    schedule 13.07.2010    source источник
comment
Вы имеете в виду, что вообще не хотите использовать javascript (вызовите веб-службу) или просто часть регулярного выражения?   -  person Tommy    schedule 13.07.2010
comment
@Tommy: - только часть регулярного выражения   -  person Salil    schedule 13.07.2010


Ответы (2)


Существует веб-служба по адресу webservicex, которая может предоставить вам XML-результаты из запроса GET. или даже вызов POST. Я никогда не использовал его, но, похоже, это то, что вы ищете.

Несуществующие почтовые индексы возвращают пустой набор данных

wget http://www.webservicex.net/uszip.asm /GetInfoByZIP?USZip=60001

<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
  <Table>
  <CITY>Alden</CITY>
  <STATE>IL</STATE>
  <ZIP>60001</ZIP>
  <AREA_CODE>815</AREA_CODE>
  <TIME_ZONE>C</TIME_ZONE>
</Table>
</NewDataSet>
person Paul Rubel    schedule 26.07.2010

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

В приведенном ниже коде (по общему признанию, с использованием устаревшего API V2 показан один из подходов к поиску, ориентированному на США). Преимущество заключается в том, что для проверки используются вычислительные ресурсы и пропускная способность конечного пользователя и Google.

Я не знаю, тяжело ли это для ваших целей, хотя я обнаружил, что гекодер Google невероятно быстр.

gecoder = new GClientGeocoder();

geocoder.getLocations(zipcode, function(response) {
    if (response && response.Status.code === 200) {
        var places = response.Placemark;
        for (var p in places) {
            if (places[p].AddressDetails.Country.CountryNameCode === 'US') {
                // lat => places[p].Point.coordinates[1],
                // lng => places[p].Point.coordinates[0],
                // zip => places[p].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber
            }
        }
    }
});
person bjg    schedule 13.07.2010