0

ページの郵便番号フィールドを検証するための JavaScript コードがあり、それは次のとおりです。

<script type="text/javascript">
 var zip=$("#zip").val();
if (zip == '') {
               errorMessage = REG_FIELD_EMPTY_ZIP;
               $('#msg_zip').html(errorMessage).show();
               }
               else {
                if ((zip.length) < 5) 
                    {
                    errorMessage = REG_FIELD_LENGTH_ZIP;
                $('#msg_zip').html(errorMessage).show();
                }
                    else 
                    {
                if (!reg.test(zip)) {
                errorMessage = REG_FIELD_ONLYDIGITS_ZIP;
                $('#msg_zip').html(errorMessage).show();
                }
               else {
                $('#msg_zip').html('').hide();
                    }
             }
           }
           </script>

ここで、いくつかの条件を追加したいと思います: 1> この郵便番号フィールドは、カナダの郵便番号形式 (A#A #A#) もサポートする必要があり、スペースの有無にかかわらず、受け入れる必要があります。値がカナダの郵便番号形式でない場合、2> 5 桁のみを受け入れる必要があります。上記のスクリプトを変更して、郵便番号フィールドがカナダの郵便番号形式も受け入れるようにするにはどうすればよいですか。検索すると、カナダの郵便番号を /^[ABCEGHJKLMNPRSTVXY]\d[AZ] *\d[AZ]\d$/; として受け入れる正規表現が見つかりました。しかし、私がテストしたところ、小文字は受け入れられませんでした。
canadian-zipコードを受け入れるか、5桁のみを受け入れるようにスクリプトを変更する方法を誰でも明確にすることができますか. 前もって感謝します。

4

1 に答える 1

1

カナダの郵便番号の正規表現は正しいです。小文字を受け入れたい場合は、大文字と小文字を区別しないオプション ( i )を使用する必要があります。

(/^[ABCEGHJKLMNPRSTVXY]\d[A-Z] *\d[A-Z]\d$/i).test(zip)

5 桁の正規表現:

/^\d{5}$/

これら2つを組み合わせると:

(/^[ABCEGHJKLMNPRSTVXY]\d[A-Z] *\d[A-Z]\d$/i).test(zip) || (/^\d{5}$/).test(zip)
于 2012-11-06T07:38:45.283 に答える