मजबूत वेब एप्लीकेशन के लिए सटीक तिथि सत्यापन महत्वपूर्ण है। गलत तिथि इनपुट से त्रुटियां और खराब उपयोगकर्ता अनुभव हो सकता है। जावास्क्रिप्ट कई तरीके प्रदान करता है, प्रत्येक में सटीकता, जटिलता और प्रदर्शन के मामले में व्यापार-बंद हैं। यह लेख तीन लोकप्रिय तरीकों का पता लगाता है: moment.js लाइब्रेरी का उपयोग करना, नियमित अभिव्यक्तियों का उपयोग करना, और अंतर्निहित Date.parse()
विधि को नियोजित करना।
विषयसूची
- moment.js के साथ तिथि सत्यापन
- नियमित अभिव्यक्तियों के साथ तिथि सत्यापन
Date.parse()
के साथ तिथि सत्यापन- सही विधि चुनना
moment.js के साथ तिथि सत्यापन
moment.js लाइब्रेरी तिथि हेरफेर और पार्सिंग के लिए एक शक्तिशाली और व्यापक रूप से उपयोग किया जाने वाला उपकरण है। इसका isValid()
फ़ंक्शन तिथियों को सत्यापित करने का एक सरल और विश्वसनीय तरीका प्रदान करता है। आपको अपनी परियोजना में moment.js शामिल करने की आवश्यकता होगी (जैसे, CDN या npm के माध्यम से)।
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
function isValidDateMoment(dateString, format = 'YYYY-MM-DD') {
return moment(dateString, format, true).isValid();
}
let date1 = "2024-03-15";
let date2 = "2024-13-15"; // अमान्य महीना
let date3 = "2024-02-29"; // वैध लीप वर्ष का दिन
let date4 = "2024-02-30"; // फ़रवरी के लिए अमान्य दिन
let date5 = "March 15, 2024"; // अलग प्रारूप
console.log(isValidDateMoment(date1)); // true
console.log(isValidDateMoment(date2)); // false
console.log(isValidDateMoment(date3)); // true (यदि 2024 लीप वर्ष है)
console.log(isValidDateMoment(date4)); // false
console.log(isValidDateMoment(date5, "MMMM DD, YYYY")); // true
format
पैरामीटर आपको अपेक्षित तिथि प्रारूप निर्दिष्ट करने की अनुमति देता है। true
ध्वज सख्त पार्सिंग सुनिश्चित करता है।
नियमित अभिव्यक्तियों के साथ तिथि सत्यापन
नियमित अभिव्यक्तियाँ एक अधिक मैनुअल दृष्टिकोण प्रदान करती हैं। शक्तिशाली होने पर, सभी तिथि बारीकियों (लीप वर्ष, महीने की लंबाई) को संभालने वाला एक रेगेक्स बनाना जटिल और त्रुटि-प्रवण हो सकता है। एक साधारण रेगेक्स केवल प्रारूप की जाँच करता है, तिथि की वैधता नहीं।
function isValidDateRegex(dateString) {
// यह एक बहुत ही बुनियादी उदाहरण है और सभी सीमांत मामलों को संभालेगा नहीं!
return /^d{4}-d{2}-d{2}$/.test(dateString);
}
let date1 = "2024-03-15";
let date2 = "2024-13-15";
let date3 = "2024-02-30";
console.log(isValidDateRegex(date1)); // true (लेकिन अपूर्ण सत्यापन)
console.log(isValidDateRegex(date2)); // true (गलत तरीके से मान्य करता है)
console.log(isValidDateRegex(date3)); // true (गलत तरीके से मान्य करता है)
मजबूत सत्यापन के लिए, एक बहुत अधिक परिष्कृत रेगेक्स की आवश्यकता होती है, जो अक्सर moment.js जैसी लाइब्रेरी का उपयोग करने की तुलना में इस दृष्टिकोण को कम व्यावहारिक बनाता है।
Date.parse()
के साथ तिथि सत्यापन
अंतर्निहित Date.parse()
विधि एक तिथि स्ट्रिंग को टाइमस्टैम्प में बदलने का प्रयास करती है। हालाँकि, यह ब्राउज़रों में अत्यधिक असंगत है और इसके उदार पार्सिंग से गलत सकारात्मक हो सकते हैं।
function isValidDateParse(dateString) {
const timestamp = Date.parse(dateString);
return !isNaN(timestamp);
}
let date1 = "2024-03-15";
let date2 = "2024-13-15";
let date3 = "2024-02-30";
console.log(isValidDateParse(date1)); // true
console.log(isValidDateParse(date2)); // true (गलत तरीके से मान्य करता है)
console.log(isValidDateParse(date3)); // true (गलत तरीके से मान्य करता है)
इसकी अविश्वसनीयता के कारण, सख्त तिथि सत्यापन के लिए Date.parse()
को आम तौर पर अनुशंसित नहीं किया जाता है।
सही विधि चुनना
विश्वसनीय और सटीक तिथि सत्यापन के लिए, moment.js पसंदीदा विधि है। यह उपयोग में आसानी, सटीकता और मजबूती का संतुलन प्रदान करता है। जबकि नियमित अभिव्यक्तियाँ शक्तिशाली हैं, उनकी जटिलता उन्हें व्यापक तिथि सत्यापन के लिए कम उपयुक्त बनाती है जब तक कि आपके पास अत्यंत विशिष्ट प्रदर्शन आवश्यकताएँ न हों। इसकी असंगतताओं के कारण सख्त सत्यापन के लिए Date.parse()
से बचें।