Créer l'expression régulière de date MM/DD/YYYY en PHP
Ce tutoriel montrera comment créer une expression régulière pour le format de date mm/jj/aaaa
en PHP.
Créer l’expression régulière de date MM/DD/YYYY
en PHP
Nous pouvons utiliser l’expression régulière pour valider la saisie de l’utilisateur selon les règles appliquées dans l’expression. Nous pouvons valider toutes les entrées à l’aide de l’expression régulière, et nous pouvons même valider le format de date mm/dd/yyyy
à l’aide de l’expression régulière.
Nous pouvons créer une expression régulière et la stocker dans une variable. Nous utiliserons la fonction preg_match()
pour tester les entrées de format de date aléatoire avec l’expression régulière.
Un modèle d’expression régulière pour le format de date mm/dd/yyyy
est présenté ci-dessous. Nous en discuterons en détail.
~(0[1-9]|1[012])[-/](0[1-9]|[12][0-9]|3[01])[-/](19|20)\d\d~
Un modèle d’expression régulière doit toujours être entouré d’un délimiteur correct. Ici, le symbole ~
est le délimiteur entourant le motif.
Ensuite, il faut écrire le format des mois en mm/dd/yyyy
.
Le mois est représenté du 01-12
dans le format. Ainsi, le premier chiffre du mois peut être soit 0
soit 1
, nous écrivons donc 0[1-9]
pour les mois commençant par 01-09
. Le 1-9
à l’intérieur de la parenthèse désigne le nombre écrit après 0
.
De même, on ne peut écrire que 10
, 11
et 12
pour le mois, en commençant par 1
. Par conséquent, nous avons écrit 012
entre les crochets pour 1
comme 1[012]
.
Nous utilisons le |
symbole pour obtenir un OU
logique. Nous l’utilisons donc pour séparer les règles comme (0[1-9]|1[012])
.
Enfin, nous mettons le motif entre parenthèses pour indiquer la fin d’une section.
Ensuite, nous devons définir la règle pour les séparateurs au format mm/dd/yyyy
. Le motif ci-dessus autorise les séparateurs des symboles -
, /
et .
.
Maintenant, nous écrivons le modèle pendant des jours. Les jours sont 1-30
, donc les jours 01-09
peuvent être écrits 0[1-9]
, 10-29
peuvent être écrits 12[0-9]
, et les jours 30-31
peut être écrit comme 3[01]
.
Nous utilisons la même règle pour les séparateurs après les jours au format mm/dd/yyyy
.
Nous avons écrit 19|20
comme les deux premiers chiffres de l’année, ce qui signifie que l’année ne peut commencer qu’à partir de 19
et 20
. Nous avons utilisé le motif \d\d
après 19|20
pour désigner deux chiffres quelconques venant après 19
ou 20
.
C’est ainsi que fonctionne l’expression régulière ci-dessus. Nous pouvons maintenant vérifier certains formats de date de test avec l’expression régulière ci-dessus.
Pour cela, créez une variable $reg
et stockez-y la regex que nous avons écrite ci-dessus. Ensuite, créez un tableau $dates
et stockez ces formats de date aléatoires.
['03/22/2021', '22/22/2021', '03\22\2021', '03-22-2021', '03/22/1865']
Ensuite, utilisez la boucle foreach
pour boucler la variable $dates
comme $date
. Comparez la variable $date
avec la variable $reg
à l’aide de la fonction preg_match()
.
En faisant cela, nous pouvons vérifier si les entrées de test sont conformes au modèle regex du format mm/dd/yyyy
.
Exemple de code :
$reg = '~(0[1-9]|1[012])[-/](0[1-9]|[12][0-9]|3[01])[-/](19|20)\d\d~';
$dates =['03/22/2021', '22/22/2021', '03\22\2021', '03-22-2021', '03/22/1865'] ;
foreach($dates as $date){
if(!preg_match($reg, $date)) {
echo 'the date format '.$date.' is incorrect'."<br>";
} else{
echo 'the date format '.$date.' is correct'."<br>";
}
}
Production :
the date format 03/22/2021 is correct
the date format 22/22/2021 is incorrect
the date format 03\22\2021 is incorrect
the date format 03-22-2021 is correct
the date format 03/22/1865 is incorrect
Ici, le premier format suit toutes les règles. Le deuxième format est incorrect car le mois ne peut pas être 22
.
La troisième est incorrecte car nous n’avons pas spécifié le séparateur \
. Nous avons spécifié le séparateur -
, donc la quatrième date est correcte. L’année est le 1800
dans la dernière, donc c’est incorrect.
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedInArticle connexe - PHP Date
- Comment ajouter des jours à Date en PHP
- Comment calculer la différence entre deux dates à l'aide de PHP
- Comment convertir la date et l'heure en chaîne de caractères en PHP
- Comment convertir une chaîne de caractères en date et en heure en PHP
- Comment convertir un format de date en un autre en PHP
- Comment obtenir la date et l'heure actuelles en PHP