There's no guard against unparsed characters at the end of the date string, any extra characters are just ignored

Fixes #7244 - Datepicker: parseDate() does not throw an exception for long years
(cherry picked from commit 92b0f6702a)
This commit is contained in:
Jörn Zaefferer 2011-05-18 17:30:26 +02:00
parent fab17293e4
commit e05559eb16
2 changed files with 12 additions and 0 deletions

View File

@ -34,4 +34,13 @@ test('Ticket 6827: formatDate day of year calculation is wrong during day lights
equals(time, "089");
});
test('Ticket #7244: date parser does not fail when too many numbers are passed into the date function', function() {
expect(1);
try{
var date = $.datepicker.parseDate('dd/mm/yy', '18/04/19881');
}catch(e){
ok("invalid date detected");
}
});
})(jQuery);

View File

@ -1078,6 +1078,9 @@ $.extend(Datepicker.prototype, {
checkLiteral();
}
}
if (iValue < value.length){
throw "Extra/unparsed characters found in date: " + value.substring(iValue);
}
if (year == -1)
year = new Date().getFullYear();
else if (year < 100)