JavaScript में Regular Expressions उदाहरण सहित: व्यावहारिक गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

JavaScript में Regular Expressions उदाहरण सहित: व्यावहारिक गाइड

\n\n

Regular Expressions (RegExp) टेक्स्ट को खोजने, बदलने और वैलिडेट करने का एक शक्तिशाली टूल है। JavaScript में, खासकर Node.js एनवायरनमेंट में, इसका उपयोग लॉग पार्सिंग से लेकर फॉर्म वेरिफिकेशन तक हर जगह किया जाता है। इस आर्टिकल में हम सिंटैक्स, तरीकों को समझेंगे और ऐसे प्रैक्टिकल उदाहरण लिखेंगे जिन्हें आप तुरंत अपने प्रोजेक्ट्स में इस्तेमाल कर सकते हैं।

\n\n

1. RegExp का सिंटैक्स और इसे बनाने के तरीके

\n\n

JavaScript में 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
    \n
  • . — कोई भी कैरेक्टर (नई लाइन को छोड़कर)
  • \n
  • \\d — डिजिट (0-9)
  • \n
  • \\w — अक्षर, डिजिट या अंडरस्कोर
  • \n
  • \\s — स्पेस कैरेक्टर (स्पेस, टैब, नई लाइन)
  • \n
  • ^ — स्ट्रिंग की शुरुआत
  • \n
  • $ — स्ट्रिंग का अंत
  • \n
  • [] — कैरेक्टर क्लास (जैसे [a-z] — सभी छोटे अक्षर)
  • \n
  • () — कैप्चर ग्रुप
  • \n
  • | — लॉजिकल OR
  • \n
\n\n

2. Regular Expressions के साथ काम करने के मुख्य तरीके

\n\n

JavaScript में कई तरीके हैं जो RegExp के साथ काम करते हैं। आइए इन्हें प्रैक्टिकल उदाहरणों से समझें।

\n\n

2.1. test() — मैच की जांच करना

\n

यह तरीका true या false रिटर्न करता है। वैलिडेशन के लिए यह बहुत उपयोगी है।

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

2.2. exec() — विस्तृत जानकारी के साथ खोज

\n

यह मैच और कैप्चर ग्रुप के साथ एक ऐरे रिटर्न करता है। डेटा निकालने के लिए यह सुविधाजनक है।

\n\n
const 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\n

2.3. match() — स्ट्रिंग में खोज

\n

यह स्ट्रिंग का एक तरीका है जो मैचों की एक ऐरे रिटर्न करता है। g फ्लैग के साथ यह सभी मैच देता है, बिना फ्लैग के सिर्फ पहला मैच ग्रुप के साथ।

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

2.4. replace() — टेक्स्ट बदलना

\n

यह मैच को नई स्ट्रिंग से बदलने की अनुमति देता है। यह कैप्चर ग्रुप के लिए $1 जैसे स्पेशल कैरेक्टर को सपोर्ट करता है।

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

ब्लॉग

पुस्तक अनुशंसाएँ