diff --git a/src/additional/postalCodeCA.js b/src/additional/postalCodeCA.js index 976b316c9..ba3bb4a4e 100644 --- a/src/additional/postalCodeCA.js +++ b/src/additional/postalCodeCA.js @@ -12,5 +12,5 @@ * @cat Plugins/Validate/Methods */ $.validator.addMethod( "postalCodeCA", function( value, element ) { - return this.optional( element ) || /^[ABCEGHJKLMNPRSTVXY]\d[A-Z] \d[A-Z]\d$/.test( value ); + return this.optional( element ) || /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test( value ); }, "Please specify a valid postal code" ); diff --git a/test/methods.js b/test/methods.js index 9b95ca797..c04988464 100644 --- a/test/methods.js +++ b/test/methods.js @@ -1181,12 +1181,16 @@ test("currency", function() { // Works with any symbol test("postalCodeCA", function() { var method = methodTest("postalCodeCA"); - ok( method( "H0H 0H0"), "Valid CA Postal Code; Single space" ); - ok( !method( "H0H0H0"), "Inalid CA Postal Code; No space" ); - ok( !method( "H0H-0H0"), "Invalid CA Postal Code; Single dash" ); - ok( !method( "H0H 0H"), "Invalid CA Postal Code; Too Short" ); - ok( !method( "Z0H 0H"), "Invalid CA Postal Code; Only 'ABCEGHJKLMNPRSTVXY' are valid starting characters" ); - ok( !method( "h0h 0h0"), "Invalid CA Postal Code; Only upper case characters" ); + ok( method( "H0H0H0"), "Valid Canadian postal code: all upper case with no space" ); + ok( method( "H0H 0H0"), "Valid Canadian postal code: all upper case with one space" ); + ok( method( "H0H 0H0"), "Valid Canadian postal code: all upper case with multiple spaces" ); + ok( method( "h0h 0h0"), "Valid Canadian postal code: all lower case with space" ); + ok( method( "h0h0h0" ), "Valid Canadian postal code: all lower case with no space" ); + ok( !method( "H0H-0H0"), "Invalid Canadian postal code: dash used as separator" ); + ok( !method( "H0H 0H"), "Invalid Canadian postal code: too short" ); + ok( !method( "Z0H 0H0"), "Invalid Canadian postal code: only 'ABCEGHJKLMNPRSTVXY' are valid first characters for the Forward Sorting Area" ); + ok( !method( "H0D 0H0"), "Invalid Canadian postal code: only 'ABCEGHJKLMNPRSTVWXYZ' are valid third characters for the Forward Sorting Area" ); + ok( !method( "H0H 0D0"), "Invalid Canadian postal code: only 'ABCEGHJKLMNPRSTVWXYZ' are valid second characters for the Local Delivery Unit" ); }); test("stateUS", function() {