Maison >interface Web >js tutoriel >Comment valider les chaînes de date au format « mm/jj/aaaa » en JavaScript ?

Comment valider les chaînes de date au format « mm/jj/aaaa » en JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 12:54:02497parcourir

How to Validate Date Strings in

Validation des chaînes de date au format « mm/jj/aaaa » en JavaScript

La validation des chaînes de date est cruciale pour garantir un traitement précis des données dans divers candidatures. Un format couramment utilisé est « mm/jj/aaaa ». Le guide suivant fournit des informations sur la façon de valider les dates dans ce format spécifique à l'aide de JavaScript.

Le code problématique

Plusieurs utilisateurs ont rencontré des problèmes avec un extrait de code spécifique pour la date. validation. Le code fourni vérifie le modèle correct, extrait les parties de date et vérifie leur validité. Cependant, il peut échouer pour les raisons suivantes :

  • Gestion incohérente du mois : Le code soustrait 1 de la valeur du mois extraite pour ajuster l'indexation mensuelle de base zéro de JavaScript. Cependant, il doit soustraire 1 avant d'utiliser la valeur avec Date() pour garantir une représentation précise du mois.
  • Gestion des erreurs peu claire : Le code imprime uniquement un message d'erreur générique sans fournir de détails spécifiques sur la raison. la validation de la date a échoué.

Fonction de validation révisée

Pour résoudre ces problèmes, nous pouvons réviser la fonction de validation comme suit :

<code class="javascript">function isValidDate(dateString) {
  // Regex pattern checking for "mm/dd/yyyy" format
  if (!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(dateString)) return false;

  // Extracting date parts as integers
  const [month, day, year] = dateString.split("/").map(Number);

  // Checking valid year and month ranges
  if (year < 1000 || year > 3000 || month < 1 || month > 12) return false;

  // Determining the number of days in the specified month
  const monthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  if (year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)) monthDays[1] = 29;

  // Verifying the day value within the month's range
  return day > 0 && day <= monthDays[month - 1];
}</code>

Gestion améliorée des erreurs

Pour fournir des messages d'erreur plus informatifs, nous pouvons ajouter des conditions spécifiques qui renvoient des explications plus détaillées :

<code class="javascript">switch (isValidDate(dateString)) {
  case false:
    alert("Invalid date format.");
    break;
  case "invalidPattern":
    alert("The date pattern should be 'mm/dd/yyyy'.");
    break;
  case "invalidDateParts":
    alert("One or more date parts are invalid.");
    break;
  case "invalidYear":
    alert("Invalid year value.");
    break;
  case "invalidMonth":
    alert("Invalid month value.");
    break;
  case "invalidDay":
    alert("Invalid day value.");
    break;
}</code>

En utilisant cette fonction de validation révisée et une gestion améliorée des erreurs, vous pouvez garantir une validation de date précise et informative dans le Format "mm/jj/aaaa" pour vos applications JavaScript.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn