Avatar ·

كيفية تحديد أن كائن Date يحتوي على تاريخ غير صالح في JavaScript؟

مرحباً بالجميع! أنا مبتدئ في JavaScript وواجهت مشكلة أثناء العمل مع التواريخ. أحتاج إلى تحليل السلاسل النصية التي قد تحتوي على تواريخ صحيحة (مثلاً "2024-10-15") أو بيانات غير صالحة (مثلاً "abc" أو "32.13.2024"). أستخدم المُنشئ `new Date()`، لكنه يتصرف بشكل غريب. إليك مثال: ```javascript let date1 = new Date("2024-10-15"); // يعمل let date2 = new Date("abc"); // ينشئ كائن أيضاً! ``` المشكلة أن `new Date("abc")` لا يرمي خطأ، بل ينشئ كائن Date بقيمة داخلية `NaN`. عندما أحاول طباعته عبر `console.log`، أرى `Invalid Date`. لكن كيف يمكنني التحقق برمجياً من أن التاريخ غير صالح؟ الطريقة `typeof` تظهر "object"، و `instanceof Date` ترجع `true` حتى للبيانات غير الصالحة. جربت المقارنة مع `NaN` — لم تعمل لأن `NaN !== NaN`. استخدمت `isNaN(date1)` — لكنها ترجع `false` للتاريخ الصالح و `true` للتاريخ غير الصالح، لكن هذا يعمل بشكل غير مستقر. كيف يمكنني التحقق بشكل صحيح وموثوق من أن التاريخ غير صالح؟