format de plage de dates d'expression régulière dmY

Je devrais écrire une expression régulière pour calculer/valider la date de la plage du format de date 01012022 à 31032022 (de janvier à mars 2022). Pouvez-vous m'aider s'il vous plaît?

^\s*(3[01]|[12][0-9]|0?[1-9])(1[012]|0?[1-9])((?:19|20)\d{2})\s*$


Solution du problème

Vous pouvez le structurer en deux parties.

Match en janvier et mars (car ils ont tous les deux 31 jours):


  • 0[1-9]matchs jours du 01 au 09

  • [12][0-9]matchs jours du 10 au 29

  • 3[01]matches jours du 30 au 31

  • 0[13]correspond aux mois 01 et 03


Match en février :


  • 0[1-9]matchs jours du 01 au 09

  • 1[0-9]matches jours du 10 au 19

  • 2[0-9]matchs jours du 20 au 29

  • 02correspond au mois 02


Pour les deux: 2022matchs année 2022.

Voici la regex complète :

"(((0[1-9]|[12][0-9]|3[01])0[13])|(0[1-9]|1[0-9]|2[0-9])02)(2022)"

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"