]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
[locale] fr: make dot optional when parsing months (#5555)
authorKunal Marwaha <marwahaha@berkeley.edu>
Wed, 20 May 2020 08:30:41 +0000 (01:30 -0700)
committerGitHub <noreply@github.com>
Wed, 20 May 2020 08:30:41 +0000 (01:30 -0700)
src/locale/fr.js
src/test/locale/fr.js

index 5281a9405659c8ba34be99edef2d1c9d48a85a7d..4ec6150fc3135feb0a163cdffd7135cd2d2df163 100644 (file)
@@ -4,6 +4,24 @@
 
 import moment from '../moment';
 
+var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
+    monthsShortStrictRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,
+    monthsRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
+    monthsParse = [
+        /^janv/i,
+        /^févr/i,
+        /^mars/i,
+        /^avr/i,
+        /^mai/i,
+        /^juin/i,
+        /^juil/i,
+        /^août/i,
+        /^sept/i,
+        /^oct/i,
+        /^nov/i,
+        /^déc/i,
+    ];
+
 export default moment.defineLocale('fr', {
     months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
         '_'
@@ -11,7 +29,13 @@ export default moment.defineLocale('fr', {
     monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
         '_'
     ),
-    monthsParseExact: true,
+    monthsRegex: monthsRegex,
+    monthsShortRegex: monthsRegex,
+    monthsStrictRegex: monthsStrictRegex,
+    monthsShortStrictRegex: monthsShortStrictRegex,
+    monthsParse: monthsParse,
+    longMonthsParse: monthsParse,
+    shortMonthsParse: monthsParse,
     weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
     weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
     weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
index 204d06bf88ebb6c3e981bf4e69d0302456a15f30..54729f74b55c7e3ac97baf47519d337504f4088b 100644 (file)
@@ -7,6 +7,9 @@ test('parse', function (assert) {
     var i,
         tests = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split(
             '_'
+        ),
+        testsNoDot = 'janvier janv_février févr_mars mars_avril avr_mai mai_juin juin_juillet juil_août août_septembre sept_octobre oct_novembre nov_décembre déc'.split(
+            '_'
         );
 
     function equalTest(input, mmm, i) {
@@ -43,6 +46,25 @@ test('parse', function (assert) {
         equalTestStrict(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
         equalTestStrict(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
     }
+
+    for (i = 0; i < 12; i++) {
+        testsNoDot[i] = testsNoDot[i].split(' ');
+        equalTest(testsNoDot[i][0], 'MMM', i);
+        equalTest(testsNoDot[i][1], 'MMM', i);
+        equalTest(testsNoDot[i][0], 'MMMM', i);
+        equalTest(testsNoDot[i][1], 'MMMM', i);
+        equalTest(testsNoDot[i][0].toLocaleLowerCase(), 'MMMM', i);
+        equalTest(testsNoDot[i][1].toLocaleLowerCase(), 'MMMM', i);
+        equalTest(testsNoDot[i][0].toLocaleUpperCase(), 'MMMM', i);
+        equalTest(testsNoDot[i][1].toLocaleUpperCase(), 'MMMM', i);
+
+        equalTestStrict(testsNoDot[i][1], 'MMM', i);
+        equalTestStrict(testsNoDot[i][0], 'MMMM', i);
+        equalTestStrict(testsNoDot[i][1].toLocaleLowerCase(), 'MMM', i);
+        equalTestStrict(testsNoDot[i][1].toLocaleUpperCase(), 'MMM', i);
+        equalTestStrict(testsNoDot[i][0].toLocaleLowerCase(), 'MMMM', i);
+        equalTestStrict(testsNoDot[i][0].toLocaleUpperCase(), 'MMMM', i);
+    }
 });
 
 test('format', function (assert) {