aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Graham <philip.robert.graham@gmail.com>2011-06-28 16:40:28 +0000
committerPhilip Graham <philip.robert.graham@gmail.com>2011-06-28 16:40:28 +0000
commit76e2b98a312cfab3d754aac5068ad965e544840c (patch)
tree9f0707aba5a98901b22fea02cde2a43910dca5c2
parent5c34cea06fb84777e1af72acf5ff0e9b60bd96f2 (diff)
downloadjquery-ui-76e2b98a312cfab3d754aac5068ad965e544840c.tar.gz
jquery-ui-76e2b98a312cfab3d754aac5068ad965e544840c.zip
Updated guard against unparsed characters to allow extra characters as long as they are separated from the date by whitespace. This maintains compatibility with timepicker extensions.
Fixes #7244 - Datepicker: parseDate() does not throw an exception for long years
-rw-r--r--tests/unit/datepicker/datepicker_tickets.js14
-rw-r--r--ui/jquery.ui.datepicker.js5
2 files changed, 16 insertions, 3 deletions
diff --git a/tests/unit/datepicker/datepicker_tickets.js b/tests/unit/datepicker/datepicker_tickets.js
index d5249f905..10647eb13 100644
--- a/tests/unit/datepicker/datepicker_tickets.js
+++ b/tests/unit/datepicker/datepicker_tickets.js
@@ -30,12 +30,22 @@ test('Ticket 6827: formatDate day of year calculation is wrong during day lights
});
test('Ticket #7244: date parser does not fail when too many numbers are passed into the date function', function() {
- expect(1);
+ var date;
try{
- var date = $.datepicker.parseDate('dd/mm/yy', '18/04/19881');
+ date = $.datepicker.parseDate('dd/mm/yy', '18/04/19881');
+ ok(false, "Did not properly detect an invalid date");
}catch(e){
ok("invalid date detected");
}
+
+ try {
+ date = $.datepicker.parseDate('dd/mm/yy', '18/04/1988 @ 2:43 pm');
+ equal(date.getDate(), 18);
+ equal(date.getMonth(), 3);
+ equal(date.getFullYear(), 1988);
+ } catch(e) {
+ ok(false, "Did not properly parse date with extra text separated by whitespace");
+ }
});
})(jQuery);
diff --git a/ui/jquery.ui.datepicker.js b/ui/jquery.ui.datepicker.js
index 1d3de7740..45107c969 100644
--- a/ui/jquery.ui.datepicker.js
+++ b/ui/jquery.ui.datepicker.js
@@ -1095,7 +1095,10 @@ $.extend(Datepicker.prototype, {
}
}
if (iValue < value.length){
- throw "Extra/unparsed characters found in date: " + value.substring(iValue);
+ var extra = value.substr(iValue);
+ if (!/^\s+/.test(extra)) {
+ throw "Extra/unparsed characters found in date: " + extra;
+ }
}
if (year == -1)
year = new Date().getFullYear();