Regex pour date (JJ/MM/AAAA)

Utilisez /^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|1[0-2])\/\d{4}$/ pour vérifier qu’une chaîne complète est une date valide au format (JJ/MM/AAAA). Chaque exemple ci-dessous est testé avec ce motif, et vous pouvez l’ouvrir dans le testeur de Regex avec les exemples préchargés.

Mis à jour le

/^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|1[0-2])\/\d{4}$/
Ouvrir dans le testeur de Regex
EntréeRésultat
30/10/2026✓ Correspondance
01/12/2000✓ Correspondance
31/01/1999✓ Correspondance
10/30/2026✗ Aucune correspondance
1/5/2026✗ Aucune correspondance
30-10-2026✗ Aucune correspondance
32/01/2026✗ Aucune correspondance

Fonctionnement du motif

PartieSignification
(?:0[1-9]|[12]\d|3[01])Jour de 01 à 31 en premier (ordre britannique, européen, indien et australien)
\/Une barre oblique
(?:0[1-9]|1[0-2])Mois de 01 à 12
\d{4}$Année à quatre chiffres

Exemples de code

JavaScript

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

Python

import re

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

PHP

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

Remarques et limites

Remplacez \/ par [\/.-] pour accepter aussi 30.10.2026 et 30-10-2026. Le nombre de jours par mois n’est pas vérifié.

Questions fréquentes

Quelle est la regex pour une date (JJ/MM/AAAA) ?
/^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|1[0-2])\/\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 : 30/10/2026, 01/12/2000, 31/01/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 s’affichent en surbrillance pendant que vous modifiez.