From: Iskren Chernev Date: Wed, 1 Oct 2014 08:19:21 +0000 (-0700) Subject: Add ordinalParse support in core X-Git-Tag: 2.8.4~31^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a794fa679bc1f83b5904db280007e72bbadd011;p=thirdparty%2Fmoment.git Add ordinalParse support in core --- diff --git a/moment.js b/moment.js index d100a9c40..242590f8c 100644 --- a/moment.js +++ b/moment.js @@ -57,7 +57,6 @@ parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z parseTokenT = /T/i, // T (ISO separator) parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 - parseTokenOrdinal = /\d{1,2}/, //strict parsing regexes parseTokenOneDigit = /\d/, // 0 - 9 @@ -798,6 +797,9 @@ this['_' + i] = prop; } } + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source); }, _months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), @@ -945,6 +947,7 @@ return this._ordinal.replace('%d', number); }, _ordinal : '%d', + _ordinalParse : /\d{1,2}/, preparse : function (string) { return string; @@ -1120,7 +1123,7 @@ case 'E': return parseTokenOneOrTwoDigits; case 'Do': - return parseTokenOrdinal; + return strict ? config._locale._ordinalParse : config._locale._ordinalParseLenient; default : a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i')); return a; @@ -1174,7 +1177,8 @@ break; case 'Do' : if (input != null) { - datePartArray[DATE] = toInt(parseInt(input, 10)); + datePartArray[DATE] = toInt(parseInt( + input.match(/\d{1,2}/)[0], 10)); } break; // DAY OF YEAR