diff --git a/src/core.js b/src/core.js index eec05ac18..98e247659 100644 --- a/src/core.js +++ b/src/core.js @@ -1112,7 +1112,7 @@ $.extend( $.validator, { // http://jqueryvalidation.org/dateISO-method/ dateISO: function( value, element ) { - return this.optional( element ) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test( value ); + return this.optional(element) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value); }, // http://jqueryvalidation.org/number-method/ diff --git a/test/methods.js b/test/methods.js index de9042064..42b174b4e 100644 --- a/test/methods.js +++ b/test/methods.js @@ -151,11 +151,20 @@ test("date", function() { test("dateISO", function() { var method = methodTest("dateISO"); ok( method( "1990-06-06" ), "Valid date" ); + ok( method( "1990-01-01" ), "Valid date" ); + ok( method( "1990-01-31" ), "Valid date" ); + ok( method( "1990-12-01" ), "Valid date" ); + ok( method( "1990-12-31" ), "Valid date" ); ok( method( "1990/06/06" ), "Valid date" ); ok( method( "1990-6-6" ), "Valid date" ); ok( method( "1990/6/6" ), "Valid date" ); ok(!method( "1990-106-06" ), "Invalid date" ); ok(!method( "190-06-06" ), "Invalid date" ); + ok(!method( "1990-00-06" ), "Invalid date" ); + ok(!method( "1990-13-01" ), "Invalid date" ); + ok(!method( "1990-01-00" ), "Invalid date" ); + ok(!method( "1990-01-32" ), "Invalid date" ); + ok(!method( "1990-13-32" ), "Invalid date" ); }); /* disabled for now, need to figure out how to test localized methods