2010-07-13 127 views
2

我想验证用户输入的邮政编码是否有效。如何验证用户输入的邮政编码是否正确美国邮政编码

for example用户输入009876654并且它是无效的,那么应该给出错误消息。

我知道我可以使用javascript regulr expression或使用ajax-zip-code-database

但我不希望任何上述的事情。我需要一些插件类的东西,发送请求到一些在线应用程序来检查它是否有效。我想这样做是因为如果将来邮政编码或新邮政编码有变化,我不想保重,代码被添加。

P.S. : - 我不想使用javascript或使用ajax-zip-code-database

+0

你的意思是你不希望使用在所有的JavaScript(调用web服务)或只是它的正则表达式部分? – Tommy 2010-07-13 11:28:27

+0

@Tommy: - 只是它的正则表达式部分 – Salil 2010-07-13 11:36:34

回答

0

假设您的应用程序与其使用条款在商业上兼容,我想知道您是否可以使用Google的gecoder服务查找邮政编码,然后检查结果,看看它是否存在。我会假设如果你找回一个邮政编码和一个理智的拉特,你可以得出结论,邮政编码是真实的。 (承认使用现在已弃用的V2 API显示以美国为中心的搜索的一种方法)。其优势在于它是用于验证的最终用户和Google计算资源和带宽。

我不知道这是否为您的目的有点沉重,虽然我发现谷歌的gecoder是非常快的。

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一个Web服务,它可以从一个GET甚至POST电话给你的XML结果。我从来没有使用它,但它似乎是你在找什么。

不存在的邮政编码返回一个空的数据集

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>