Что бы простейшую регулярное выражение, чтобы соответствовать следующий формат даты:Простейшее возможно регулярное выражение, чтобы соответствовать дате строку
mm-dd-yy
т.е. 01-01-13
Что бы простейшую регулярное выражение, чтобы соответствовать следующий формат даты:Простейшее возможно регулярное выражение, чтобы соответствовать дате строку
mm-dd-yy
т.е. 01-01-13
Это зависит от того, если вы хотите, чтобы соответствовать номерам:
\d\d-\d\d-\d\d
Но если вы хотите быть уверены, что любая дата является действительным, он должен быть либо неточными или невозможно (не может работать с февраля).
Вот лучше регулярное выражение, но все еще не совершенны:
(1[0-2]|0\d)-([0-2]\d|3[0-1])-\d\d
чувак в мм 0-3 должен использоваться –
Что такое 13 месяцев? – deufeufeu
Это просто:
/^\d\d-\d\d-\d\d$/
Но вы должны убедиться, что дата действительна с использованием библиотеки дат после этой простой проверки формата: никакое разумное регулярное выражение не проверяет, что вы не 29 февраля в год без бисектиля.
Я всегда использую \d{2}-\d{2}-\d{2}
, но учтите, что это позволяет «даты» как 13-13-13
.
Написание полного регулярного выражения, которое будет соответствовать только действительным датам, настолько сложно, что это вряд ли стоит усилий.
Другое примечание состоит в том, что этот формат очень неоднозначен. Если возможно, используйте yyyy-mm-dd
или dd-mm-yyyy
.
/[1-3]{1,2}-[1-9]{1,2}-[1-9]{1,2}/
Просто для удовольствия, вот тот, который соответствует только действительные даты. Поскольку вы используете двузначные годы, предполагается, что 00
- 2000 (это високосный год); если вы ищете 1900 или 2100, это потребует изменения.
/^((0[13-9]|1[012])-(0[1-9]|[12]\d|30)|([13578]|1[02])-31)-\d\d|02-(0[1-9]|[12][0-8])-\d\d|02-29-([02468][048]|[13579][26])$/
[Статья] (http://www.regular-expressions.info/dates.html) может помочь ... –