Regex pour date (MM/DD/YYYY)

Utilisez /^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/ pour vérifier qu'une chaîne entière est une date valide au format (MM/DD/YYYY). Chaque exemple ci-dessous a été testé avec ce motif, et vous pouvez l'ouvrir dans le testeur de regex avec les échantillons déjà chargés.

Mis à jour le

/^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/
Ouvrir dans le testeur de regex
EntréeRésultat
10/30/2026✓ Correspond
01/01/2000✓ Correspond
12/31/1999✓ Correspond
13/01/2026✗ Ne correspond pas
1/5/2026✗ Ne correspond pas
30/10/2026✗ Ne correspond pas
10-30-2026✗ Ne correspond pas

Fonctionnement du motif

PartieSignification
(?:0[1-9]|1[0-2])Mois de 01 à 12 en premier (ordre américain)
\/Une barre oblique (échappée pour les littéraux JavaScript)
(?:0[1-9]|[12]\d|3[01])Jour de 01 à 31
\d{4}$Année à quatre chiffres à la fin

Exemples de code

JavaScript

const re = /^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:0[1-9]|1[0-2])/(?:0[1-9]|[12]\d|3[01])/\d{4}', value))

PHP

preg_match('/^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/', $value) === 1;

Remarques et limites

Pour accepter aussi les mois et les jours à un chiffre, remplacez 0[1-9] par 0?[1-9] aux deux endroits. Le nombre de jours par mois n'est pas vérifié : validez donc la date elle-même ensuite.

Questions fréquentes

Quelle est la regex pour une date (MM/DD/YYYY) ?
/^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/ — elle correspond à la chaîne entière. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : 10/30/2026, 01/01/2000, 12/31/1999. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le testeur de regex » : le motif, les indicateurs et le texte d'exemple se chargent automatiquement, et les correspondances se surlignent pendant que vous modifiez.