Forum Discussion
Parameter Value - Regular Expression
- Nov 05, 2021
I found this regex, fits in the 254 character limit and checks:
- valid dates
- if leap year, then 29.2. is also valid
(^(((0[1-9]|1[0-9]|2[0-8])[\/](0[1-9]|1[012]))|((29|30|31)[\/](0[13578]|1[02]))|((29|30)[\/](0[4,6,9]|11)))[\/](19|[2-9][0-9])\d\d$)|(^29[\/]02[\/](19|[2-9][0-9])(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)$)
Yes, it will work, but will not catch non-existing dates like: 31/02/2000.
I found a regex build by someone brilliant on stackoverflow, which also check for leap years.
^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[13-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
There is a regex validator in ASM, where it seems that the above regex is working.
And shows it is not matching non-existing dates.
KR
Daniel
- THE_BLUENov 05, 2021Cirrostratus
dear Daniel,
the idea is, i want to accept date format only (dd/mm/yyyy) in this parameter and block others value like text and so on. so do i have to use the mentioned regex (your regex) ?
one more thing, i can not use the above regex because it exceed the limit . how can i re-write the regex to accept dd/mm/yyyy ?
- Daniel_WolfNov 05, 2021MVP
Hi ,
You are correct, my regex is exceeding the 254 character limit. I tested it only in the regex validator, but not in a Parameter. My bad. *facepalm*
Your regex should work, but it will not prevent users from adding dates like 31/02/2022.
KR
Daniel
- Daniel_WolfNov 05, 2021MVP
I found this regex, fits in the 254 character limit and checks:
- valid dates
- if leap year, then 29.2. is also valid
(^(((0[1-9]|1[0-9]|2[0-8])[\/](0[1-9]|1[012]))|((29|30|31)[\/](0[13578]|1[02]))|((29|30)[\/](0[4,6,9]|11)))[\/](19|[2-9][0-9])\d\d$)|(^29[\/]02[\/](19|[2-9][0-9])(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)$)
- THE_BLUENov 05, 2021Cirrostratus
I have test my regex with 29/3/2026 but i got Parameter value does not comply with regular expression , where it is works fine for 02/03/2022
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com