fix: allow middle-of-text dates when followed by time expressions (#2195)

Reworked matchDateAtBoundary() to use a single regex pass instead of
two-pass start/end anchoring. Middle-of-text matches are now accepted
when followed by a time expression (at/@ prefix), so inputs like
"meeting 9/11 at 10:00" still parse correctly while "The 9/11 Report"
is rejected.
This commit is contained in:
kolaente
2026-02-06 10:57:50 +01:00
parent cee258edc3
commit 3f0bf71d30
2 changed files with 21 additions and 13 deletions
@@ -392,6 +392,8 @@ describe('Parse Task Text', () => {
const boundaryTests = [
{input: '9/11 meeting', dateStr: '2021-9-11', text: 'meeting'},
{input: 'meeting 9/11', dateStr: '2021-9-11', text: 'meeting'},
{input: 'meeting 9/11 at 10:00', dateStr: '2021-9-11', text: 'meeting'},
{input: 'meeting 9/11 @ 15:00', dateStr: '2021-9-11', text: 'meeting'},
{input: '2021-06-24 Lorem Ipsum', dateStr: '2021-6-24', text: 'Lorem Ipsum'},
{input: 'Lorem Ipsum 06/26/2021', dateStr: '2021-6-26', text: 'Lorem Ipsum'},
{input: '01.02 Lorem Ipsum', dateStr: '2022-2-1', text: 'Lorem Ipsum'},