Patrice T
Цитата:
мне нужно регулярное выражение, которое должно быть в состоянии проверить февраль в високосные годы, то есть я не должен быть в состоянии отправить страницу, если пользователь дает 28 февраля 2016 года для високосного года.
В этом случае вам также нужно проверить месяцы с 31 днем и отклонить "31 июня". В последний раз, когда я проверял, "28 февраля" было правильным каждый год, високосный или нет.
Даже если это возможно, то, что вы хотите сделать с регулярным выражением, - это своего рода злоупотребление.
Я бы использовал регулярное выражение, чтобы проверить формат даты примерно '99 aaa 9999', а затем кусок JS-кода, как только я узнаю, что формат правильный.
Проблема с проверкой глубоких деталей с помощью регулярного выражения заключается в том, что регулярное выражение будет вырождаться по мере того, как вы вводите эти детали. Проблема в том, что вы не можете включить исчисление в регулярное выражение, и поэтому вам приходится описывать все возможности, которые не вписываются в общий случай.
Как только вы узнаете, что входные данные соответствуют общему формату даты, небольшой "простой" фрагмент JS-кода может проверить, является ли год високосным или нет (год % 4 == 0)
Всего несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[
^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[
^]
Регулярное Средство Выражения Эспрессо [
^]
Это показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[
^]