Heim >Web-Frontend >js-Tutorial >Wie validiere ich Datumszeichenfolgen im Format „MM/TT/JJJJ' in JavaScript?

Wie validiere ich Datumszeichenfolgen im Format „MM/TT/JJJJ' in JavaScript?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 12:54:02497Durchsuche

How to Validate Date Strings in

Validierung von Datumszeichenfolgen im Format „mm/tt/jjjj“ in JavaScript

Die Validierung von Datumszeichenfolgen ist entscheidend, um eine genaue Datenverarbeitung in verschiedenen Bereichen sicherzustellen Anwendungen. Ein häufig verwendetes Format ist „mm/tt/jjjj“. Die folgende Anleitung bietet Einblicke in die Validierung von Datumsangaben in diesem speziellen Format mit JavaScript.

Der problematische Code

Mehrere Benutzer sind auf Probleme mit einem bestimmten Codeausschnitt für das Datum gestoßen Validierung. Der bereitgestellte Code prüft, ob das Muster korrekt ist, extrahiert Datumsteile und überprüft deren Gültigkeit. Es kann jedoch aus folgenden Gründen fehlschlagen:

  • Inkonsistente Monatsbehandlung: Der Code subtrahiert 1 vom extrahierten Monatswert, um ihn an die nullbasierte Monatsindizierung von JavaScript anzupassen. Es sollte jedoch 1 subtrahiert werden, bevor der Wert mit Date() verwendet wird, um eine genaue Monatsdarstellung sicherzustellen.
  • Unklare Fehlerbehandlung: Der Code gibt nur eine allgemeine Fehlermeldung aus, ohne spezifische Details zum Grund anzugeben Die Datumsvalidierung ist fehlgeschlagen.

Überarbeitete Validierungsfunktion

Um diese Probleme zu beheben, können wir die Validierungsfunktion wie folgt überarbeiten:

<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>

Verbesserte Fehlerbehandlung

Um informativere Fehlermeldungen bereitzustellen, können wir spezifische Bedingungen hinzufügen, die detailliertere Erklärungen zurückgeben:

<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>

Durch die Verwendung dieser überarbeiteten Validierungsfunktion und einer verbesserten Fehlerbehandlung können Sie eine genaue und informative Datumsvalidierung im Format „mm/tt/jjjj“ für Ihre JavaScript-Anwendungen sicherstellen.

Das obige ist der detaillierte Inhalt vonWie validiere ich Datumszeichenfolgen im Format „MM/TT/JJJJ' in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn