Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue #1300 fix: fuzzydate strict date option regex #2354

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

nandanv2702
Copy link

Hey! This fix refers to issue #1300

I made changes to two of the files to include regex options to parse dates in the following formats:

  • mm dd yyyy
  • mm dd yy
  • dd mm yyyy
  • dd mm yy

All the aforementioned date formats use the separators . or - or /, e.g.:

  • dd-mm-yy
  • dd.mm.yy
  • dd/mm/yy

This can be activated using the strictDate option in the fuzzydate function which is set to false by default.

Let me know whether this solution is what you were looking for!

@SheetJSDev
Copy link
Contributor

ES6 issues aside (we are targeting ES3, so no const or default parameter values or arrow functions) two comments:

  1. the result of the match is not used, so RegExp#test probably should be used. You might also be missing a new RegExp somewhere.

  2. how should the library interpret something ambiguous like 03-02-01 or 01/02/03 ?

@nandanv2702
Copy link
Author

nandanv2702 commented Sep 23, 2021

Hey! I'll work on the changes for the first point soon, but as for the second - what do you think of including an option similar to dateNF that allows a user to enter the date format as dd-mm-yy, mm-dd-yy etc.?

Alternatively, if strictDates is set to true, we can use dateNF (or the newly defined similar variable as mentioned above) to match any date values to the regex options defined in this PR here

What do you think?

@nandanv2702
Copy link
Author

Just following up on my last comment - after reading #2196 and #1646, I think it might make more sense to make the following changes:

  1. Change strictDates to a string that can be dd-mm, mm-dd, or true
  2. Refactor STRICT_DATE_REGEX to be an Object with the keys dd-mm and `mm-dd with their respective regex values

This can allow for stricter dates while also letting us switch dd-mm to mm-dd internally since the JS Date function only uses mm-dd. In case strictDates is true, we can test it with all STRICT_DATE_REGEX values and return the first match (which will, by nature, be in the mm-dd format).

I'm currently working on these changes, so let me know if this sounds good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants