Регулярное выражение: выражение, соответствующее действительной дате, но с минимальной и максимальной датами - PullRequest
0 голосов
/ 17 декабря 2011

Я нашел это для проверки даты в дд / мм / гггг:

^(((((0[1-9])|(1\d)|(2[0-8]))\/((0[1-9])|(1[0-2])))|((31\/((0[13578])|(1[02])))|((29|30)\/((0[1,3-9])|(1[0-2])))))\/((20[0-9][0-9])|(19[0-9][0-9])))|((29\/02\/(19|20)(([02468][048])|([13579][26]))))$

Как установить минимальные / максимальные даты?

Ответы [ 3 ]

1 голос
/ 17 декабря 2011

Языки программирования (такие как java, C#, python и т. Д.) Имеют тип date/time/datetime.
date может быть создан с помощью конструктора, если вы предоставите действительные аргументы.
Если нет, это будет продукт exception, который может быть захвачен (обычно try...catch оператор).
Трудно проверить 29/2/2012 и 29/2/2013, используя regex.
Но это легко с помощью date тип языка.

$ python
>>> import time
>>> time.strptime('29/2/2012', '%d/%m/%Y')
time.struct_time(tm_year=2012, tm_mon=2, tm_mday=29, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=60, tm_isdst=-1)
>>> time.strptime('29/2/2013', '%d/%m/%Y')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.2/_strptime.py", line 482, in _strptime_time
    tt = _strptime(data_string, format)[0]
  File "/usr/lib/python3.2/_strptime.py", line 459, in _strptime
    datetime_date(year, 1, 1).toordinal() + 1
ValueError: day is out of range for month
0 голосов
/ 17 декабря 2011

Для сравнения дат вы также можете использовать date.js.

HTH

0 голосов
/ 17 декабря 2011

Если вы используете этот плагин, по крайней мере, вы знаете, что у вас будет действительная дата с точки зрения форматирования.Затем JavaScript выполняет синтаксический анализ даты и определяет все правила.

Эта функция не завершена , поэтому, если кто-то добавит ее:нажмите кнопку обновления и опустите ссылку здесь.Если это будет более полным, я обновлю этот пост.

Я не мог представить, что действительно проверю дату в RegEx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...