Я плохо разбираюсь в регулярном выражении. Я получил код для проверки формата dd/mm/yyyy, который также проверяет високосный год, я попытался изменить его, чтобы заставить его работать на mm/dd/yyyy, но все они потерпели неудачу.javascript - регулярное выражение для подтверждения даты в формате mm/dd/yyyy
Может ли кто-нибудь изменить его, чтобы проверить формат mm/dd/yyyy?
Регулярное выражение:
^(((0 [1-9] | [12] \ д | 3 [01])/(0 [13578] | 1 [02])/((19 | [2-9] \ d) \ d {2})) | ((0 [1-9] | [12] \ д | 30)/(0 [13456789] | 1 [012])/((19 | [2-9] \ d) \ d {2})) | ((0 [1-9] | 1 \ д | 2 [0-8])/02/((19 | [2-9] \ г) \ д {2})) | (29/02/((1 [6-9] | [2-9] \ г) (0 [48] | [2468] [048] | [13579] [ 26]) | ((16 | [2468] [048] | [3579] [26]) 00)))) $
Ответ Привет всем, спасибо за помощь от всех вас, наконец, снова проанализировав регулярное выражение, я получил свой ответ для проверки формата mm/dd/yyyy
Регулярное выражение:
/^ (((0 [13578] | 1 [02])/(0 [1-9] | [12] \ д | 3 [01])/((19 | [2-9] \ d) \ d {2})) | ((0 [13456789] | 1 [012])/(0 [1-9] | [12] \ д | 30)/((19 | [2-9] \ d) \ d {2})) | (02/(0 [1-9] | 1 \ д | 2 [0-8])/((19 | [2-9 ] \ d) \ d {2})) | (02/29/((1 [6-9] | [2-9] \ г) (0 [48] | [2468] [048] | [13579] [26]) | ((16 | [2468] [048] | [3579] [26]) 00)))) $/г
Лучше попытаться построить объект Date из входной строки, и если он действителен (не является нулевым), дата действительна. Потому что проблемы, такие как високосный год и количество дней в месяц, будут легко решены. –
Использование регулярного выражения - плохая идея. Люди не могут рассчитывать на летные месяцы в самые лучшие времена - попытка сделать это в регулярном выражении была бы ужасной. –
Посмотрите на этот ответ, чтобы дать вам несколько альтернативных идей: http://stackoverflow.com/a/16464768/592253 – Xotic750