2

ユーザーが入力した郵便番号が有効かどうかを検証したい。

for exampleユーザーが入力し009876654、それが有効でない場合は、エラー メッセージが表示されます。

私は使用javascript regulr expressionまたは使用してそれを行うことができることを知っていますajax-zip-code-database

しかし、私は上記のいずれも望んでいません。オンラインアプリケーションにリクエストを送信して有効かどうかを確認するプラグインのようなものが必要です。将来、郵便番号や新しい郵便番号に変更があった場合に気をつけたくないので、これが必要ですコードが追加されます。

PS :- 使いたくない、javascriptまたは使いたくないajax-zip-code-database

4

2 に答える 2

1

webservicexには、GET または POST 呼び出しから XML 結果を取得できるWeb サービスがあります。私はそれを使用したことはありませんが、あなたが探しているもののようです。

存在しない郵便番号は空のデータ セットを返します

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>
于 2010-07-26T21:35:30.520 に答える
0

アプリケーションがそれらの利用規約と商業的に互換性があると仮定すると、Googleのgecoderサービスを使用して郵便番号を検索し、結果をチェックして存在するかどうかを確認できるかどうか疑問に思います。郵便番号と正気のlat、lngペアを取り戻せば、郵便番号は本物であると結論付けることができると思います。

以下のコード(現在非推奨のV2 APIを使用していることは確かに、米国中心の検索の1つのアプローチを示しています)。利点は、検証を行うために使用されるのはエンドユーザーと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
            }
        }
    }
});
于 2010-07-13T13:32:18.577 に答える