Avatar ·

Wie man feststellt, ob ein Date-Objekt ein ungültiges Datum in JavaScript enthält?

Hallo zusammen! Ich bin neu in JavaScript und habe ein Problem bei der Arbeit mit Daten. Ich muss Zeichenketten parsen, die sowohl korrekte Daten (z.B. "2024-10-15") als auch Müll (z.B. "abc" oder "32.13.2024") enthalten können. Ich verwende den Konstruktor `new Date()`, aber er verhält sich seltsam.\n\nHier ein Beispiel:\n```javascript\nlet date1 = new Date("2024-10-15"); // funktioniert\nlet date2 = new Date("abc"); // erstellt auch ein Objekt!\n```\nDas Problem ist, dass `new Date("abc")` keinen Fehler wirft, sondern ein Date-Objekt mit dem internen Wert `NaN` erstellt. Wenn ich versuche, es über `console.log` auszugeben, sehe ich `Invalid Date`. Aber wie kann ich programmatisch überprüfen, ob das Datum ungültig ist? Der `typeof`-Operator zeigt "object", und `instanceof Date` gibt `true` zurück, selbst für Müll.\n\nIch habe versucht, mit `NaN` zu vergleichen – das funktioniert nicht, weil `NaN !== NaN`. Ich habe `isNaN(date1)` verwendet – aber es gibt `false` für ein gültiges Datum und `true` für ein ungültiges zurück, aber das funktioniert nicht stabil. Wie kann ich richtig und zuverlässig prüfen, ob