NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Validateur regex JavaScript de dates

Validateur regex JavaScript de dates

Testez et validez facilement des formats de dates comme DD/MM/YYYY, MM-DD-YYYY ou les timestamps ISO 8601 grâce au Validateur regex JavaScript de dates. Que vous construisiez des formulaires, analysiez des journaux ou nettoyiez des données en JavaScript, cet outil garantit la précision et le bon formatage des dates. Essayez également le Testeur regex JavaScript pour expérimenter avec des patterns, ou combinez-le avec le Validateur regex JavaScript d'e-mail et le Validateur regex JavaScript d'adresse IP pour valider des données utilisateur complètes.

Validateur regex JavaScript de dates - Documentation

Qu'est-ce qu'un regex de dates ?

En JavaScript, une expression régulière (regex) pour les dates permet d'identifier et de valider si une chaîne correspond à un format de date spécifique. Que vous construisiez des formulaires, des filtres de données ou des journaux, valider les dates garantit que les utilisateurs saisissent correctement les informations et évite les erreurs en aval.

Un regex de dates peut correspondre à des patterns tels que :

  • DD/MM/YYYY

  • MM-DD-YYYY

  • YYYY-MM-DD

  • Timestamps ISO 8601 comme 2023-06-05T12:30:00Z

Pattern regex JavaScript pour la validation de dates

Voici un regex couramment utilisé pour la validation basique DD/MM/YYYY :

/^(0[1-9]|[12][0-9]|3[01])[\/\-](0[1-9]|1[0-2])[\/\-](19|20)\d\d$/

Décomposition :

  • ^(0[1-9]|[12][0-9]|3[01]) : valide le jour (01 à 31)

  • [\/\-] : accepte / ou - comme séparateur

  • (0[1-9]|1[0-2]) : valide le mois (01 à 12)

  • (19|20)\d\d$ : valide l'année (1900 à 2099)

Comment valider une date avec regex en JavaScript

Voici un extrait de code JavaScript utilisant regex pour la validation de dates :

function isValidDate(dateString) {
  const dateRegex = /^(0[1-9]|[12][0-9]|3[01])[\/\-](0[1-9]|1[0-2])[\/\-](19|20)\d\d$/;
  return dateRegex.test(dateString);
}

console.log(isValidDate("25/12/2024")); // true console.log(isValidDate("2024-12-25")); // false

Regex est utile pour vérifier qu'une chaîne correspond à un format spécifique. Cependant, le constructeur Date de JavaScript ne parse pas nativement le format DD/MM/YYYY. Si vous devez convertir une chaîne dans ce format en objet Date, vous devrez d'abord la reformater en YYYY/MM/DD :

let dateInput = "15/05/2019"; // format DD/MM/YYYY

let dateArray = dateInput.split("/");

let newDate = ${dateArray[2]}/${dateArray[1]}/${dateArray[0]};

console.log(newDate); // 2019/05/15 (YYYY/MM/DD)

Vous pouvez ensuite utiliser newDate avec le constructeur Date de JavaScript en toute sécurité.

Vérifier si une chaîne est une date valide en JavaScript

Pour confirmer à la fois le format et la validité de la date elle-même, le constructeur Date et la fonction isNaN() sont vos alliés :

function isDateValid(dateStr) {
return !isNaN(new Date(dateStr));
}

// DD/MM/YYYY (non reconnu par Date) console.log(isDateValid("15/05/2019")); // false

// MM/DD/YYYY console.log(isDateValid("05/15/2019")); // true

// YYYY/MM/DD console.log(isDateValid("2019/05/15")); // true

Le constructeur Date reconnaît les formats MM/DD/YYYY et YYYY/MM/DD, mais pas DD/MM/YYYY. Combinez regex et isNaN() pour une validation stricte : vérifiez d'abord le format avec regex, puis confirmez la validité avec le constructeur.

Inverser les positions du jour et de l'année

Pour convertir une chaîne de DD/MM/YYYY en YYYY/MM/DD en JavaScript, décomposez et réassemblez les parties :

let originalDate = "15/05/2019"; // DD/MM/YYYY
let parts = originalDate.split("/");
// Réorganisé en YYYY/MM/DD
let convertedDate = ${parts[2]}/${parts[1]}/${parts[0]};

console.log(convertedDate); // 2019/05/15

Convertir une date au format DD/MM/YYYY en JavaScript

Pour afficher une date au format DD/MM/YYYY à partir d'un objet Date JavaScript :

function formatDateToDDMMYYYY(dateInput) {
const dateObj = new Date(dateInput);
if (isNaN(dateObj)) return "Date invalide";

let day = dateObj.getDate(); let month = dateObj.getMonth() + 1; // Les mois sont indexés à partir de 0 const year = dateObj.getFullYear();

// Toujours deux chiffres pour le jour et le mois day = day < 10 ? "0" + day : day; month = month < 10 ? "0" + month : month;

return ${day}/${month}/${year}; }

console.log(formatDateToDDMMYYYY("2019/05/15")); // "15/05/2019"

Notez que getMonth() retourne les mois avec un index base zéro, janvier vaut 0 et décembre vaut 11. Il faut donc ajouter 1 pour obtenir l'affichage correct.

Valider des dates avec isNaN() en JavaScript

Regex vérifie le format, mais isNaN() combiné à new Date() permet de s'assurer qu'une valeur peut réellement devenir un objet Date JavaScript valide :

function isDateValid(dateStr) {
return !isNaN(new Date(dateStr));
}

Comparer des dates en JavaScript

Pour vérifier si une date précède ou suit une autre en JavaScript, vous pouvez utiliser directement les opérateurs de comparaison sur les objets Date :

const firstDate = new Date('2024-06-01');
const secondDate = new Date('2024-06-05');

console.log(firstDate < secondDate); // true console.log(firstDate > secondDate); // false

Pour vérifier l'égalité, utilisez .getTime() :

console.log(firstDate.getTime() === secondDate.getTime()); // false

Autres patterns utiles

ISO 8601 (ex. 2024-06-05T12:30:00Z) :

/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/

Format MM-DD-YYYY :

/^(0[1-9]|1[0-2])--\d\d$/

Pourquoi ajuster le mois avec getMonth() en JavaScript ?

La méthode getMonth() compte les mois à partir de zéro : janvier retourne 0, décembre retourne 11. Pour afficher la plage habituelle de 1 à 12, ajoutez toujours 1 à la valeur retournée :

const date = new Date();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const year = date.getFullYear();
const formattedDate = ${month}-${day}-${year};

Cas d'utilisation concrets

  • Validation de formulaires : assurez-vous que les utilisateurs saisissent des dates de naissance, des dates de réservation ou des échéances valides.

  • Analyse de journaux : extrayez des chaînes de dates valides depuis des journaux serveur avec le Testeur regex JavaScript.

  • Nettoyage de données : utilisez ce validateur pour normaliser les formats de dates dans les outils de traitement JavaScript.

Outils à utiliser en complément

Conseils avancés

  • Utilisez String.prototype.match() ou .test() pour des vérifications regex rapides en JavaScript.

  • Validez toujours la logique de la date séparément (ex. le 30 février est invalide même si le regex l'autorise).

  • Tenez-vous en à ISO 8601 pour la cohérence des API et des bases de données.

  • Utilisez des groupes non capturants ((?:...)) quand vous n'avez pas besoin d'extraire des parties de la correspondance.

  • Pour la performance, compilez le regex une seule fois et réutilisez-le dans vos fonctions de validation.

Frequently Asked Questions

Le regex JavaScript peut-il détecter les dates invalides comme le 31/02/2023 ?

Non, regex vérifie uniquement le format. Vous devrez combiner regex avec une validation logique des dates en JavaScript.

Doit-on utiliser des barres obliques ou des tirets dans le regex de dates ?

Les deux fonctionnent. Choisissez celui que vous attendez dans vos données ou acceptez les deux avec [-/].

Peut-on valider des timestamps ISO avec regex ?

Oui, regex peut vérifier la structure, mais utilisez Date.parse() ou new Date() pour une validation complète des timestamps.

Ce regex est-il réutilisable dans les systèmes backend comme Node.js ?

Absolument. Regex fonctionne de la même façon dans Node.js que dans JavaScript côté navigateur.

Peut-on utiliser cet outil pour tester des patterns regex de dates pour d'autres formats ?

Oui, le validateur Qodex prend en charge tout pattern regex personnalisé que vous souhaitez tester.

Testez vos API dès aujourd'hui !

Rédigez en langage naturel, Qodex génère des tests sécurisés et prêts à l'emploi.