From: Iskren Chernev Date: Tue, 2 Apr 2013 07:18:20 +0000 (-0700) Subject: Added support for three word arabic months X-Git-Tag: 2.1.0~42^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=405a53cc153a656cfe36fd8054be96ec0996649e;p=thirdparty%2Fmoment.git Added support for three word arabic months --- diff --git a/moment.js b/moment.js index 88d34edf8..1700d366c 100644 --- a/moment.js +++ b/moment.js @@ -36,7 +36,7 @@ parseTokenThreeDigits = /\d{3}/, // 000 - 999 parseTokenFourDigits = /\d{1,4}/, // 0 - 9999 parseTokenSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999 - parseTokenWord = /[0-9]*[a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF]+\s*?[\u0600-\u06FF]+/i, // any word (or two) characters or numbers including two word month in arabic. + parseTokenWord = /[0-9]*[a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic. parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/i, // +00:00 -00:00 +0000 -0000 or Z parseTokenT = /T/i, // T (ISO seperator) parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 @@ -373,7 +373,9 @@ this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); } // test the regex + // console.log("testing with regex " + this._monthsParse[i]); if (this._monthsParse[i].test(monthName)) { + // console.log("hit!"); return i; } } @@ -643,6 +645,8 @@ var a, b, datePartArray = config._a; + // console.log('attaft ' + token + ' ' + input + ' ' + config); + switch (token) { // MONTH case 'M' : // fall through to MM @@ -776,6 +780,7 @@ for (i = 0; i < tokens.length; i++) { parsedInput = (getParseRegexForToken(tokens[i]).exec(string) || [])[0]; + // console.log('parsedInput: ' + parsedInput); if (parsedInput) { string = string.slice(string.indexOf(parsedInput) + parsedInput.length); } diff --git a/test/lang/ar.js b/test/lang/ar.js index 0675b028d..4d4709624 100644 --- a/test/lang/ar.js +++ b/test/lang/ar.js @@ -15,7 +15,7 @@ exports["lang:ar"] = { "parse" : function(test) { test.expect(96); - var tests = 'كانون الثاني:كانون الثاني_ﺶﺑﺎﻃ:ﺶﺑﺎﻃ_آذار:آذار_نيسان:نيسان_أيار:أيار_حزيران:حزيران_تموز:تموز_آب:آب_أيلول:أيلول_تشرين الأول:تشرين الأول_تشرين الثاني:تشرين الثاني_كانون الأول:كانون الأول'.split("_"); + var tests = 'يناير/ كانون الثاني:يناير/ كانون الثاني_فبراير/ شباط:فبراير/ شباط_مارس/ آذار:مارس/ آذار_أبريل/ نيسان:أبريل/ نيسان_مايو/ أيار:مايو/ أيار_يونيو/ حزيران:يونيو/ حزيران_يوليو/ تموز:يوليو/ تموز_أغسطس/ آب:أغسطس/ آب_سبتمبر/ أيلول:سبتمبر/ أيلول_أكتوبر/ تشرين الأول:أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني:نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول:ديسمبر/ كانون الأول'.split("_"); var i; function equalTest(input, mmm, i) { test.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1) + ' instead is month ' + moment(input, mmm).month());