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