JavaScript में Regular Expressions उदाहरण सहित: व्यावहारिक गाइड
\n\nRegular Expressions (RegExp) टेक्स्ट को खोजने, बदलने और वैलिडेट करने का एक शक्तिशाली टूल है। JavaScript में, खासकर Node.js एनवायरनमेंट में, इसका उपयोग लॉग पार्सिंग से लेकर फॉर्म वेरिफिकेशन तक हर जगह किया जाता है। इस आर्टिकल में हम सिंटैक्स, तरीकों को समझेंगे और ऐसे प्रैक्टिकल उदाहरण लिखेंगे जिन्हें आप तुरंत अपने प्रोजेक्ट्स में इस्तेमाल कर सकते हैं।
\n\n1. RegExp का सिंटैक्स और इसे बनाने के तरीके
\n\nJavaScript में Regular Expression को दो तरीकों से बनाया जा सकता है: लिटरल और कंस्ट्रक्टर। लिटरल स्टैटिक पैटर्न के लिए सुविधाजनक है, जबकि कंस्ट्रक्टर डायनामिक पैटर्न के लिए उपयोगी है।
\n\n// लिटरल (सुझावित)\nconst regexLiteral = /hello/gi;\n\n// कंस्ट्रक्टर (डायनामिक पैटर्न के लिए)\nconst pattern = "hello";\nconst flags = "gi";\nconst regexConstructor = new RegExp(pattern, flags);\n\nफ्लैग (मॉडिफायर):
\n- \n
g— ग्लोबल सर्च (सभी मैच ढूंढता है, सिर्फ पहला नहीं) \n i— केस-इनसेंसिटिव सर्च (बड़े-छोटे अक्षरों में अंतर नहीं करता) \n m— मल्टीलाइन मोड (^और$एंकर हर लाइन के लिए काम करते हैं) \n s— डॉट.को नई लाइन कैरेक्टर से मैच करने देता है \n u— यूनिकोड का पूरा सपोर्ट शामिल करता है \n
बेसिक मेटाकैरेक्टर:
\n- \n
.— कोई भी कैरेक्टर (नई लाइन को छोड़कर) \n \\d— डिजिट (0-9) \n \\w— अक्षर, डिजिट या अंडरस्कोर \n \\s— स्पेस कैरेक्टर (स्पेस, टैब, नई लाइन) \n ^— स्ट्रिंग की शुरुआत \n $— स्ट्रिंग का अंत \n []— कैरेक्टर क्लास (जैसे[a-z]— सभी छोटे अक्षर) \n ()— कैप्चर ग्रुप \n |— लॉजिकल OR \n
2. Regular Expressions के साथ काम करने के मुख्य तरीके
\n\nJavaScript में कई तरीके हैं जो RegExp के साथ काम करते हैं। आइए इन्हें प्रैक्टिकल उदाहरणों से समझें।
\n\n2.1. test() — मैच की जांच करना
\nयह तरीका true या false रिटर्न करता है। वैलिडेशन के लिए यह बहुत उपयोगी है।
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\nconst emails = ["user@example.com", "invalid-email", "test@domain.co.uk"];\n\nemails.forEach(email => {\n console.log(`${email}: ${emailPattern.test(email)}`);\n});\n// user@example.com: true\n// invalid-email: false\n// test@domain.co.uk: true\n\n2.2. exec() — विस्तृत जानकारी के साथ खोज
\nयह मैच और कैप्चर ग्रुप के साथ एक ऐरे रिटर्न करता है। डेटा निकालने के लिए यह सुविधाजनक है।
\n\nconst logLine = "ERROR: 2023-10-15 14:30:00 - Server crash";\nconst logPattern = /^(ERROR|WARN|INFO): (\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}) - (.+)$/;\nconst result = logPattern.exec(logLine);\n\nif (result) {\n console.log(`लेवल: ${result[1]}`);\n console.log(`तारीख: ${result[2]}`);\n console.log(`संदेश: ${result[3]}`);\n}\n// लेवल: ERROR\n// तारीख: 2023-10-15 14:30:00\n// संदेश: Server crash\n\n2.3. match() — स्ट्रिंग में खोज
\nयह स्ट्रिंग का एक तरीका है जो मैचों की एक ऐरे रिटर्न करता है। g फ्लैग के साथ यह सभी मैच देता है, बिना फ्लैग के सिर्फ पहला मैच ग्रुप के साथ।
const text = "फोन: +7(999)123-45-67, +7(495)765-43-21";\nconst phonePattern = /\\+7\\(\\d{3}\\)\\d{3}-\\d{2}-\\d{2}/g;\nconst phones = text.match(phonePattern);\n\nconsole.log(phones);\n// ['+7(999)123-45-67', '+7(495)765-43-21']\n\n2.4. replace() — टेक्स्ट बदलना
\nयह मैच को नई स्ट्रिंग से बदलने की अनुमति देता है। यह कैप्चर ग्रुप के लिए $1 जैसे स्पेशल कैरेक्टर को सपोर्ट करता है।
const messyDate = "2023/10/15";\nconst cleanDate = messyDate.replace(/(\\d{4})\\/(\\d{2})\\/(\\d{2})/, "$3.$2.$1");\nconsole.log(cleanDate); // 15.10.2023\n\n