[英]How to validate that zip code enter by user is correct US zipcode
我想驗證用戶輸入的郵政編碼是否有效。
for example
用戶輸入009876654
,但它無效,則應給出錯誤消息。
我知道我可以使用javascript regulr expression
或使用ajax-zip-code-database
但是我不想要以上任何一個。 我需要某種插件來將請求發送到一些在線應用程序以檢查是否有效。我想要這樣做是因為我不希望以后如果郵編或新郵編發生更改,請注意代碼被添加。
PS:-我不想使用javascript
或使用ajax-zip-code-database
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>
假設您的應用程序與其使用條款在商業上兼容,我想知道您是否可以使用Google的gecoder服務來查找郵政編碼,然后檢查結果以查看其是否存在。 我認為,如果您找回郵政編碼和理智的經緯度對,則可以得出郵政編碼是真實的。
下面的代碼(公認的使用現在不推薦使用的V2 API顯示了一種以美國為中心的搜索方法)。 好處是,最終用戶和Google會使用計算資源和帶寬進行驗證。
盡管我發現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
}
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.