мне нужна помощь, придумывая регулярное выражение, чтобы убедиться, что пользователь вводит действительную дату строка будет в формате mm/dd/yyyy
Regular Expression, чтобы соответствовать правильный день в дату
Вот что я пришел до сих пор.
/\[1-9]|0[1-9]|1[0-2]\/\d{1,2}\/19|20\d\d/
Я подтверждено регулярное выражение, в котором пользователь не может войти в день, выше, чем 12, и годы должны начинаться с «19» или «20». У меня возникают проблемы с выяснением некоторой логики для проверки дня. На следующий день не должно переходить 31.
Регулярное выражение кажется странным инструментом для этой задачи. Не можете ли вы преобразовать текст в дату и проверить его значения? –
Хотя это теоретически можно было бы сделать, регулярное выражение, которое обрабатывало правильное количество дней для каждого месяца (включая високосные годы), было бы безумно сложным. Почему бы просто не разделить дату и проверить каждый компонент? (Или еще лучше использовать один из многих парсеров даты на CPAN.) – cjm
@ Zerobu, почему вы задаете тот же вопрос снова, чем год назад ??? [Вопросы/2573466/согласования-а-дата-в-Perl] (http://stackoverflow.com/questions/2573466/matching-a-date-in-perl). Хорошо, год назад у вас не было ответа регулярного выражения, но я надеюсь, что вы видите из @Seth answer regex не полезно проверять дату. – stema