2013-10-04 2 views
0

У меня есть регулярное выражение для проверки даты в формате ММ/ДД/ГГГГ, как показано нижеКак разрешить дату как «00/00/0000» в регулярном выражении

(0?[1-9]|1[012])[/](0?[1-9]|[12][0-9]|3[01])[/](19|20)?\d\d 

, но теперь я хочу, чтобы дата должна быть в силе если кто-то входит в 00/00/0000 в этом формате.

Может ли кто-нибудь дать мне предложения?

+0

возможно дубликат [Регулярное выражение для MM/DD/YYY в JavaScript] (http://stackoverflow.com/questions/6402743/regular-expression-for-mm-dd-yyy-in-javascript) – Ohgodwhy

+0

@Ohgodwhy - не обман этого вопроса - это, в частности, добавление валидации «00/00/0000». –

ответ

3

Предполагая, что это единственное дополнение вы хотите сделать с обычной проверки:

(0?[0-9]|1[012])[/](0?[0-9]|[12][0-9]|3[01])[/](0000|(19|20)?\d\d) 

Или, чтобы быть еще более эксклюзивным:

(00\/00\/0000)|((0?[1-9]|1[012])[/](0?[1-9]|[12][0-9]|3[01])[/](19|20)?\d\d) 
+0

Принимает 00/00/0000, это правильно, но он также принимает даты, как 00/00/2014, я не хочу принимать этот вид даты. Я хочу принять реальную дату в формате mm/dd/yyyy, а также 00/00/000. – Irshad

+0

Я подозреваю, что ваш интерфейс нуждается в переосмыслении, но пусть будет так. Ответ обновлен. – Blazemonger

1

Если я поймаю свой дрейф, вы хотите, любое количество разрешено, в этом случае

/\d{1,2}\\\d{1,2}\\\d{4}/ 

Похоже, что ваш друг.

Если это не так, и вы хотите только дать разумные даты plus 00/00/0000, посмотрите на Blazemonger's answer.

1

Учитывая ваше единственное исключение из правила, похоже, что вы должны держать решение простым и продолжать усложнять уже сложное регулярное выражение.

/(00\/00\/0000) | ((0?[1-9]|1[012])[/](0?[1-9]|[12][0-9]|3[01])[/](19|20)?\d\d)/ 
Смежные вопросы