39

人々が一緒に小さなコードプロジェクトに取り組んでいると思いましたが、私はそれらを見ていないので、ここに簡単なものがあります:

有効な米国の郵便番号を検証するコード。そこに郵便番号データベースがあることは知っていますが、Webページ、迅速な検証、および郵便番号が発行され続けるという事実などの用途はまだあるので、弱い検証を使用することをお勧めします。

ウィキ/ブログのサイドプロジェクトで郵便番号について少し書きました。

https://benc.fogbugz.com/default.asp?W24

新しい、奇妙なタイプの郵便番号もあります。

https://benc.fogbugz.com/default.asp?W42

javascriptコードを実行することはできますが、ここで取得できる言語の数を確認するのは興味深いことです。

4

13 に答える 13

54

Javascript 正規表現リテラル:

米国の郵便番号: /(^\d{5}$)|(^\d{5}-\d{4}$)/

var isValidZip = /(^\d{5}$)|(^\d{5}-\d{4}$)/.test("90210");

一部の国では、このパターンに失敗する郵便番号を使用しています。

于 2008-10-02T02:11:07.027 に答える
6

国コードに基づいて郵便番号を検証する JavaScript 関数を次に示します。やや自由な書式設定が可能です。他の国のケースも追加できます。すべての国で使用されているわけではないため、デフォルトのケースでは空の郵便番号が許可されていることに注意してください。

function isValidPostalCode(postalCode, countryCode) {
    switch (countryCode) {
        case "US":
            postalCodeRegex = /^([0-9]{5})(?:[-\s]*([0-9]{4}))?$/;
            break;
        case "CA":
            postalCodeRegex = /^([A-Z][0-9][A-Z])\s*([0-9][A-Z][0-9])$/;
            break;
        default:
            postalCodeRegex = /^(?:[A-Z0-9]+([- ]?[A-Z0-9]+)*)?$/;
    }
    return postalCodeRegex.test(postalCode);
}

参考までに、架空の郵便番号に言及している 2 番目のリンクは、エイプリル フールの冗談のようです。

于 2008-10-02T04:29:31.030 に答える
5

あなたがカナダのためにやっているなら、すべての手紙が有効ではないことを覚えておいてください

これらの文字は無効です: D、F、I、O、Q、または U そして、文字 W と Z は最初の文字として使用されません。また、3文字目以降に任意のスペースを入れる人もいます。

カナダの郵便番号の正規表現は次のとおりです。

new RegExp(/^[abceghjklmnprstvxy][0-9][abceghjklmnprstvwxyz]\s?[0-9][abceghjklmnprstvwxyz][0-9]$/i)

最後のiは、大文字と小文字を区別しません。

于 2011-09-16T14:37:24.463 に答える
3

これはjQuery Validateプラグインのadditional-methods.jsファイルからのものです...

jQuery.validator.addMethod("zipUS", function(value, element) {
    return /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(value);
}, "Please specify a valid US zip code.");

EDIT : 上記のコードは jQuery Validate プラグインの一部であるため、.addMethod()メソッドによって異なります。

プラグインへの依存を取り除き、より一般的なものにします....

function checkZip(value) {
    return (/(^\d{5}$)|(^\d{5}-\d{4}$)/).test(value);
};

使用例: http://jsfiddle.net/5PNcJ/

于 2013-02-20T19:05:43.907 に答える
1

これは、検証の問題に対する優れた JavaScript ソリューションです。

/\b\d{5}-\d{4}\b/
于 2011-10-31T00:34:24.320 に答える
1

USPS Address Information API をご覧になることをお勧めします。zip を検証して、標準形式のアドレスを取得できます。https://www.usps.com/business/web-tools-apis/address-information.htm

于 2014-08-22T21:10:48.637 に答える
0

有効なカナダの郵便番号を確認する1つの方法は-

function isValidCAPostal(pcVal) {
   return ^[A-Za-z][0-9][A-Za-z]\s{0,1}[0-9][A-Za-z][0-9]$/.test(pcVal);
}

これが誰かを助けることを願っています。

于 2013-02-19T11:16:01.797 に答える
0

私の回答をさらに進めると、UPS と FedEx は、USPS を最終ハンドラーとして使用しない限り、私書箱に配送できません。そこにあるほとんどの配送ソフトウェアは、標準サービスの私書箱の郵便番号を許可しません. 私書箱の郵便番号の例は、00604 - RAMEY, PR および 06141 - HARTFORD, CT です。

郵便番号を検証する全体の必要性は、実際には、どこまで行くか、予算はいくらか、スケジュールはどうなるかという問題になる可能性があります.

式 test、test、test、および test again を持つものと同様です。State 検証の式があり、失敗するはずの YORK が合格したことがわかりました。何千年に一度、誰かがニューヨークに入った、ニューヨーク 10279、うーん。

また、USPS は N. Market St. などの句読点を好まず、Lane、Place、North、Corporation などの非常に具体的な許容略語を使用していることにも注意してください。

于 2013-10-20T20:01:54.653 に答える
-1

アドレス検証について言及していますか?マイクによる前の回答と同様に、他の 95% に対応する必要があります。

あなたができることは、ユーザーが国を選択してから検証を有効にすることです。住所の検証と郵便番号の検証は 2 つの異なるものです。ZIP の検証は、その整数を確認するだけです。住所の検証とは、実際の住所が正確であることを検証することであり、できれば郵送できるようにすることです。

于 2008-10-02T02:30:22.050 に答える