Maison > interface Web > js tutoriel > Comment valider de manière fiable les dates au format « mm/jj/aaaa » en JavaScript ?

Comment valider de manière fiable les dates au format « mm/jj/aaaa » en JavaScript ?

Patricia Arquette
Libérer: 2024-11-01 19:49:02
original
938 Les gens l'ont consulté

How to Reliably Validate Dates in

Validation des dates au format "mm/jj/aaaa" en JavaScript

Lors de la tentative de validation des dates au format "mm/jj/ aaaa" en utilisant le code fourni, vous pourriez rencontrer des problèmes. Analysons les erreurs possibles et fournissons une solution plus fiable.

La fonction d'origine vérifie si la chaîne d'entrée correspond au format souhaité et tente de créer un objet Date à partir des valeurs fournies. Cependant, il peut y avoir des écarts entre la date d'entrée et les parties calculées à partir de l'objet Date, conduisant à une validation incorrecte.

Fonction de validation améliorée

Pour résoudre ce problème, un une fonction de validation plus robuste peut être utilisée :

<code class="javascript">function isValidDate(dateString) {
  // Validate Format
  if (!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(dateString)) return false;

  // Parse Date Components
  const parts = dateString.split("/");
  const day = parseInt(parts[1], 10);
  const month = parseInt(parts[0], 10);
  const year = parseInt(parts[2], 10);

  // Check Range of Month and Year
  if (year < 1000 || year > 3000 || month < 1 || month > 12) return false;

  // Adjust for Leap Years
  const monthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  if ((year % 400 === 0) || ((year % 100 !== 0) && (year % 4 === 0))) {
    monthLength[1] = 29;
  }

  // Check Valid Day Range
  return day > 0 && day <= monthLength[month - 1];
}</code>
Copier après la connexion

Cette fonction valide minutieusement les chaînes de date en vérifiant le format, en analysant les composants individuels, en évaluant la validité des plages de mois et d'années et en prenant en compte les années bissextiles pour déterminer la valeur valide. plage de jours.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal