From 257722f694b0f7b5cf784d5aed67a497b5609ba9 Mon Sep 17 00:00:00 2001 From: Wanasit Tanakitrungruang Date: Sat, 25 Jan 2025 10:26:09 +0900 Subject: [PATCH] Fix: (en) Recognize "of" between month name and year --- src/locales/en/parsers/ENMonthNameParser.ts | 2 +- test/en/en_month.test.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/locales/en/parsers/ENMonthNameParser.ts b/src/locales/en/parsers/ENMonthNameParser.ts index ae7a376a..cd6e89b9 100644 --- a/src/locales/en/parsers/ENMonthNameParser.ts +++ b/src/locales/en/parsers/ENMonthNameParser.ts @@ -10,7 +10,7 @@ const PATTERN = new RegExp( `(${matchAnyPattern(MONTH_DICTIONARY)})` + `\\s*` + `(?:` + - `[,-]?\\s*(${YEAR_PATTERN})?` + + `(?:,|-|of)?\\s*(${YEAR_PATTERN})?` + ")?" + "(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)", "i" diff --git a/test/en/en_month.test.ts b/test/en/en_month.test.ts index 492c632f..945eb041 100644 --- a/test/en/en_month.test.ts +++ b/test/en/en_month.test.ts @@ -69,6 +69,14 @@ test("Test - Month-Year expression", function () { expect(result.start).toBeDate(new Date(2012, 9 - 1, 1, 12)); }); + testSingleCase(chrono, "in June of 2022", (result) => { + expect(result.text).toContain("June of 2022"); + + expect(result.start).not.toBeNull(); + expect(result.start.get("year")).toBe(2022); + expect(result.start.get("month")).toBe(6); + }); + testSingleCase(chrono, "Statement of comprehensive income for the year ended Dec. 2021", (result) => { expect(result.text).toBe("Dec. 2021");