diff --git a/src/additional/postalCodeCA.js b/src/additional/postalCodeCA.js new file mode 100644 index 000000000..6d287de95 --- /dev/null +++ b/src/additional/postalCodeCA.js @@ -0,0 +1,16 @@ +/** + * Matches a valid Canadian Postal Code + * + * @example jQuery.validator.methods.postalCodeCA( "H0H 0H0", element ) + * @result true + * + * @example jQuery.validator.methods.postalCodeCA( "H0H0H0", element ) + * @result false + * + * @name jQuery.validator.methods.postalCodeCA + * @type Boolean + * @cat Plugins/Validate/Methods + */ +jQuery.validator.addMethod( "postalCodeCA", function( value, element ) { + return this.optional( element ) || /^[ABCEGHJKLMNPRSTVXY]\d[A-Z] \d[A-Z]\d$/.test( value ); +}, "Please specify a valid postal code" ); diff --git a/src/localization/messages_fr.js b/src/localization/messages_fr.js index 0fe21b489..d4eb716ae 100644 --- a/src/localization/messages_fr.js +++ b/src/localization/messages_fr.js @@ -45,6 +45,7 @@ require_from_group: "Veuillez fournir au moins {0} de ces champs.", nifES: "Veuillez fournir un numéro NIF valide.", nieES: "Veuillez fournir un numéro NIE valide.", - cifES: "Veuillez fournir un numéro CIF valide." + cifES: "Veuillez fournir un numéro CIF valide.", + postalCodeCA: "Veuillez fournir un code postal valide.", }); }(jQuery)); diff --git a/test/methods.js b/test/methods.js index dd8be8118..8bd993a51 100644 --- a/test/methods.js +++ b/test/methods.js @@ -1205,4 +1205,14 @@ test("currency", function() { // Works with any symbol ok(!method( "9.99,9", "£"), "Invalid currency" ); }); +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" ); +}); + })(jQuery);