Content-Length: 6767 | pFad | http://github.com/jquery-validation/jquery-validation/pull/2032.patch

thub.com From f1f31a4d3c1d103a653e514d2a9c2767173e767b Mon Sep 17 00:00:00 2001 From: Rob Johnston Date: Fri, 14 Jul 2017 13:30:46 -0400 Subject: [PATCH 1/4] Add sanity checks to dateISO method Redo of PR due to mangled repo. Still fixes #1528. --- src/core.js | 33 +++++++++++++++++++++++++++++++-- test/methods.js | 17 +++++++++++++---- 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/src/core.js b/src/core.js index e9d17db86..995c85788 100644 --- a/src/core.js +++ b/src/core.js @@ -1382,8 +1382,37 @@ $.extend( $.validator, { }, // https://jqueryvalidation.org/dateISO-method/ - dateISO: function( value, element ) { - return this.optional( element ) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test( value ); + dateISO: function (value, element) { + if (this.optional(element)) { + return true; + } + var check = false, + re = /^(\d{4})(?:-){1}(0[1-9]|1[012])(?:-){1}(0[1-9]|[12][0-9]|3[01])$/, + adata, + yyyy, + mm, + dd, + isLeap; + if (re.test(value)) { + check = true; + + // Do a sanity check to ensure the date is valid + adata = value.match(re); + yyyy = parseInt(adata[1], 10); + mm = parseInt(adata[2], 10); + dd = parseInt(adata[3], 10); + + if ((mm === 4 || mm === 6 || mm === 9 || mm === 11) && dd === 31) { + check = false; + } else if (mm === 2) { + isLeap = (yyyy % 4 === 0 && (yyyy % 100 !== 0 || yyyy % 400 === 0)); + + if (dd > 29 || (dd === 29 && !isLeap)) { + check = false; + } + } + } + return check; }, // https://jqueryvalidation.org/number-method/ diff --git a/test/methods.js b/test/methods.js index 812a8b270..5b0a5556e 100644 --- a/test/methods.js +++ b/test/methods.js @@ -192,16 +192,25 @@ QUnit.test( "dateISO", function( assert ) { assert.ok( method( "1990-01-31" ), "Valid date" ); assert.ok( method( "1990-12-01" ), "Valid date" ); assert.ok( method( "1990-12-31" ), "Valid date" ); - assert.ok( method( "1990/06/06" ), "Valid date" ); - assert.ok( method( "1990-6-6" ), "Valid date" ); - assert.ok( method( "1990/6/6" ), "Valid date" ); + assert.ok( !method( "1990/06/06" ), "Invalid date" ); + assert.ok( !method( "1990-6-6" ), "Invalid date" ); + assert.ok( !method( "1990/6/6" ), "Invalid date" ); assert.ok( !method( "1990-106-06" ), "Invalid date" ); + assert.ok( !method( "1990-06-106" ), "Invalid date" ); assert.ok( !method( "190-06-06" ), "Invalid date" ); assert.ok( !method( "1990-00-06" ), "Invalid date" ); assert.ok( !method( "1990-13-01" ), "Invalid date" ); assert.ok( !method( "1990-01-00" ), "Invalid date" ); assert.ok( !method( "1990-01-32" ), "Invalid date" ); - assert.ok( !method( "1990-13-32" ), "Invalid date" ); + assert.ok( !method( "1990-13-01" ), "Invalid date" ); + assert.ok( !method( "19990-01-01" ), "Invalid date" ); + assert.ok( method( "1992-02-29" ), "Valid divide-by-4 leap day" ); + assert.ok( !method( "1990-02-29" ), "Invalid divide-by-4 leap day" ); + assert.ok( method( "2000-02-29" ), "Valid end-of-century leap day" ); + assert.ok( !method( "1900-02-29" ), "Invalid end-of-century leap day" ); + assert.ok( !method( "2100-02-29" ), "Invalid divide-by-100 leap day" ); + assert.ok( method( "1990-10-31" ), "Valid last day of month" ); + assert.ok( !method( "1990-09-31" ), "Invalid last day of month" ); } ); /* Disabled for now, need to figure out how to test localized methods From b648d676f895fd260c6f57406d8835f369bd2e1e Mon Sep 17 00:00:00 2001 From: Rob Johnston Date: Fri, 14 Jul 2017 14:24:11 -0400 Subject: [PATCH 2/4] Added missing space before closing round bracket. --- src/core.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core.js b/src/core.js index 995c85788..55b6a9229 100644 --- a/src/core.js +++ b/src/core.js @@ -1407,7 +1407,7 @@ $.extend( $.validator, { } else if (mm === 2) { isLeap = (yyyy % 4 === 0 && (yyyy % 100 !== 0 || yyyy % 400 === 0)); - if (dd > 29 || (dd === 29 && !isLeap)) { + if (dd > 29 || (dd === 29 && !isLeap) ) { check = false; } } From d4f68abb93fdb691a150b76630f3767cff5fe0f8 Mon Sep 17 00:00:00 2001 From: Rob Johnston Date: Fri, 14 Jul 2017 14:32:41 -0400 Subject: [PATCH 3/4] Correct code style errors due to white space. --- src/core.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/core.js b/src/core.js index 55b6a9229..c1b0b86fb 100644 --- a/src/core.js +++ b/src/core.js @@ -1382,8 +1382,8 @@ $.extend( $.validator, { }, // https://jqueryvalidation.org/dateISO-method/ - dateISO: function (value, element) { - if (this.optional(element)) { + dateISO: function( value, element ) { + if ( this.optional( element ) ) { return true; } var check = false, @@ -1393,21 +1393,21 @@ $.extend( $.validator, { mm, dd, isLeap; - if (re.test(value)) { + if ( re.test( value ) ) { check = true; // Do a sanity check to ensure the date is valid - adata = value.match(re); - yyyy = parseInt(adata[1], 10); - mm = parseInt(adata[2], 10); - dd = parseInt(adata[3], 10); + adata = value.match( re ); + yyyy = parseInt( adata[ 1 ], 10 ); + mm = parseInt( adata[ 2 ], 10 ); + dd = parseInt( adata[ 3 ], 10 ); - if ((mm === 4 || mm === 6 || mm === 9 || mm === 11) && dd === 31) { + if ( (mm === 4 || mm === 6 || mm === 9 || mm === 11) && dd === 31 ) { check = false; - } else if (mm === 2) { - isLeap = (yyyy % 4 === 0 && (yyyy % 100 !== 0 || yyyy % 400 === 0)); + } else if ( mm === 2 ) { + isLeap = ( yyyy % 4 === 0 && ( yyyy % 100 !== 0 || yyyy % 400 === 0 ) ); - if (dd > 29 || (dd === 29 && !isLeap) ) { + if ( dd > 29 || ( dd === 29 && !isLeap ) ) { check = false; } } From 2460be88608fd72df8eb37ee7bfd0a5f754f9ed8 Mon Sep 17 00:00:00 2001 From: Rob Johnston Date: Fri, 14 Jul 2017 14:35:32 -0400 Subject: [PATCH 4/4] Correct code style errors due to white space. --- src/core.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core.js b/src/core.js index c1b0b86fb..2e53892a0 100644 --- a/src/core.js +++ b/src/core.js @@ -1402,7 +1402,7 @@ $.extend( $.validator, { mm = parseInt( adata[ 2 ], 10 ); dd = parseInt( adata[ 3 ], 10 ); - if ( (mm === 4 || mm === 6 || mm === 9 || mm === 11) && dd === 31 ) { + if ( ( mm === 4 || mm === 6 || mm === 9 || mm === 11 ) && dd === 31 ) { check = false; } else if ( mm === 2 ) { isLeap = ( yyyy % 4 === 0 && ( yyyy % 100 !== 0 || yyyy % 400 === 0 ) );








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/jquery-validation/jquery-validation/pull/2032.patch

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy