2

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

for example пользователь вводит 009876654, и он недопустим, поэтому следует предоставить сообщение об ошибке.

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

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

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

+0

ли вы имеете в виду вы не хотите использовать JavaScript на всех (вызвать WebService) или просто регулярное выражение его часть? – Tommy

+0

@Tommy: - просто часть его регулярного выражения – Salil

ответ

0

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

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

Я не знаю, если это немного тяжело для ваших целей, хотя я нашел gecoder 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 
      } 
     } 
    } 
}); 
1

Существует веб-сервис на 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>