mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
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
This commit is contained in:
parent
5c34cea06f
commit
76e2b98a31
@ -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);
|
||||
|
5
ui/jquery.ui.datepicker.js
vendored
5
ui/jquery.ui.datepicker.js
vendored
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user