我想验证用户输入的邮政编码是否有效。
for example
用户输入009876654
但无效,则应提供错误消息。
我知道我可以使用javascript regulr expression
或使用ajax-zip-code-database
但我不想要任何上述内容。我需要一些插件的东西,它发送请求到一些在线应用程序,以检查它是否有效。我想要这个,因为我不想小心,如果将来有邮政编码或新拉链的变化代码被添加。
P.S。 : - 我不想使用javascript
或使用ajax-zip-code-database
答案 0 :(得分:1)
webservicex上有一个Web服务可以为您提供GET甚至POST调用的XML结果。我从来没有使用它,但它似乎是你正在寻找的。 p>
不存在的邮政编码会返回空数据集
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>
答案 1 :(得分:0)
假设您的应用程序与其使用条款在商业上兼容,我想知道您是否可以使用Google的gecoder服务查找邮政编码,然后检查结果是否存在。我会假设如果你找回一个邮政编码和一个理智的lat,lng对,你可以得出结论,邮政编码是真实的。
下面的代码(诚然使用现已弃用的V2 API显示了一种以美国为中心的搜索方法)。优点是最终用户和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
}
}
}
});