Expression régulière correspondant à un jour de validité d'une date

J'ai besoin d'aide venir avec une expression régulière pour s'assurer que l'utilisateur entre une date valide
La chaîne sera dans le format de mm/dd/yyyy

Voici ce que j'ai mis au point jusqu'à présent.

/\[1-9]|0[1-9]|1[0-2]\/\d{1,2}\/19|20\d\d/

J'ai validé les regex où l'utilisateur ne peut pas entrer un jour de plus de 12 et les années ont commencer par "19" ou 20". Ce que j'ai de la difficulté est de trouver une certaine logique pour la validation de la journée. La journée ne devrait pas aller plus 31.

Une regex semble comme un étrange outil pour résoudre ce problème. Pouvez-vous ne pas convertir le texte à une date et à une vérification de ses valeurs?
Bien que ce principe pourrait être fait, une regex qui a géré le bon nombre de jours pour chaque mois (y compris les années bissextiles) serait incroyablement complexe. Pourquoi ne pas simplement diviser la date et de tester chaque composant? (Ou, mieux encore, utiliser l'un des nombreux date analyseurs sur le CPAN.)
pourquoi demandez-vous la même question qu'il y a un an??? questions/2573466/matching-a-date-in-perl. OK, il y a un an vous n'avez pas obtenu un regex réponse, mais j'espère vous voir à partir de @Seth réponse regex n'est pas utile de valider une date.
Si je voulais que toutes les conditions telles que l'année bissextile, alors je l'ai dit donc
mon point est simplement que la plupart des gens commencent à penser qu'ils ont juste besoin d'un simple regex pour une chaîne de date, mais finissent par avoir besoin de quelque chose de "réel". Si ce n'est pas le cas pour vous, pas de problème 🙂 Si c'est, eh bien, ma réponse sera toujours là quand vous en avez besoin!

OriginalL'auteur Zerobu | 2011-05-20