Merge pull request #1536 from thomasgohard/ca-postal-code-update

Additionals: Updates to postalCodeCA method

Allow both upper case and lower case characters and zero or more spaces between the Forward Sorting Area and Local Delivery Unit portions as users do not always use all upper case or include a space (see wet-boew/wet-boew#6760).

Correct the regular expression to fail entries that include invalid characters D, F, I, O, Q, and U which are not used in Canadian postal codes.
This commit is contained in:
Markus Staab
2015-08-21 22:20:07 +02:00
2 changed files with 11 additions and 7 deletions

View File

@@ -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" );

View File

@@ -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() {