簡體   English   中英

如何驗證用戶輸入的郵政編碼是正確的美國郵政編碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM