Каково регулярное выражение для формата даты (mm-dd-yyyy) и проверка их?
Вот
((0[1-9])|(1[0-2]))-(([0-2]\d)|([3][01]))-(\d{4})
Объяснение:
Поскольку mm
может быть любой 01-09
от 01
до 12
поэтому для достаточного 01-09
регулярное выражение будет 0[1-9]
или как mm
также может быть 10-12
так что 1[0-2]
.
Следовательно, регулярное выражение для соответствия mm
будет (0\d)|(1[0-2])
Так как dd
может быть любой, от 01
до 31
поэтому для достаточного регулярного выражения 01-29
будет [0-2]\d
или оно также может быть 30-31
поэтому [3][01]
.
Следовательно, регулярное выражение для соответствия dd
будет (([0-2]\d)|([3][01]))
Поскольку yyyy
может быть любым числом из 4 цифр, то есть 2010, 1999, 2050 и т.д. (Если вы не рассматриваете какой-либо конкретный диапазон), поэтому регулярное выражение будет просто 4 цифры, т.е. \d{4}
.
Следовательно, регулярное выражение, соответствующее yyyy
, будет (\d{4})
Таким образом, после их комбинирования, полное регулярное выражение для даты будет:
((0[1-9])|(1[0-2]))-(([0-2]\d)|([3][01]))-(\d{4})