लोड हो रहा है...

रेगुलर एक्सप्रेशन्स

रेगुलर एक्सप्रेशन्स (Regular Expressions) जावास्क्रिप्ट में एक शक्तिशाली उपकरण है जो आपको टेक्स्ट को खोजने, मैच करने और बदलने में मदद करता है। इसे अक्सर संक्षेप में "Regex" कहा जाता है। यदि आप किसी पोर्टफोलियो वेबसाइट पर उपयोगकर्ता के ईमेल पते को सत्यापित करना चाहते हैं, ब्लॉग पर किसी विशेष शब्द की खोज करना चाहते हैं, ई-कॉमर्स साइट पर फोन नंबर या पिनकोड को चेक करना चाहते हैं, न्यूज़ साइट पर टॉपिक फ़िल्टर करना चाहते हैं या सोशल प्लेटफ़ॉर्म पर हैशटैग्स को पहचानना चाहते हैं – हर जगह रेगुलर एक्सप्रेशन्स आपकी मदद करता है।
रेगुलर एक्सप्रेशन्स का उपयोग करना वैसा है जैसे आप एक बड़ी लाइब्रेरी (डेटा) में किताबें ढूंढ रहे हों। अगर आपके पास सिर्फ किताबों की शेल्फ़ को एक-एक करके खंगालने का विकल्प है तो समय लगेगा। लेकिन अगर आपके पास एक सटीक खोज प्रणाली (Regex) हो, तो आप तुरंत मनचाही किताब तक पहुँच सकते हैं। इसी तरह Regex आपको बड़े टेक्स्ट में सटीक पैटर्न खोजने और उनसे काम करने देता है।
इस ट्यूटोरियल में आप सीखेंगे कि रेगुलर एक्सप्रेशन्स की मूलभूत संरचना क्या है, इसे कैसे बनाया जाता है, और इसे वास्तविक वेब एप्लीकेशन्स (जैसे ब्लॉग, ई-कॉमर्स, सोशल मीडिया) में कैसे लागू किया जाता है। अंत तक आप Regex की जटिलताओं को समझेंगे और यह जानेंगे कि इसे बेहतर तरीके से कैसे इस्तेमाल किया जाए।

मूल उदाहरण

javascript
JAVASCRIPT Code
// Validate if a string is a valid email format
let email = "[[email protected]](mailto:[email protected])";
let pattern = /^\[a-zA-Z0-9._%+-]+@\[a-zA-Z0-9.-]+.\[a-z]{2,}\$/;

if (pattern.test(email)) {
console.log("Valid Email Address");
} else {
console.log("Invalid Email Address");
}

ऊपर दिए गए कोड में हमने एक सामान्य लेकिन वास्तविक दुनिया का उदाहरण लिया है – ईमेल एड्रेस की जाँच। आइए इसे विस्तार से समझें:
सबसे पहले, हमने एक वेरिएबल email में एक स्ट्रिंग स्टोर की है। उसके बाद pattern नाम का एक रेगुलर एक्सप्रेशन बनाया गया है। यह पैटर्न / स्लैश के बीच लिखा जाता है। शुरुआत में ^ का मतलब है कि मैच स्ट्रिंग की शुरुआत से होना चाहिए और $ का मतलब है कि यह अंत तक चेक करेगा।
[a-zA-Z0-9._%+-]+ का अर्थ है कि ईमेल का लोकल-पार्ट (जो @ से पहले आता है) अक्षरों, अंकों और कुछ विशेष कैरेक्टर्स से बन सकता है। + का अर्थ है कि कम से कम एक या अधिक बार यह होना चाहिए। इसके बाद @ एक निश्चित कैरेक्टर है, जिसे हर ईमेल में होना ही चाहिए। फिर [a-zA-Z0-9.-]+ डोमेन नेम को परिभाषित करता है। अंत में \.[a-z]{2,}$ टॉप-लेवल डोमेन (जैसे .com, .net, .org) को परिभाषित करता है, जिसमें कम से कम 2 अक्षर होने चाहिए।
pattern.test(email) का उपयोग यह जांचने के लिए किया जाता है कि स्ट्रिंग पैटर्न से मेल खाती है या नहीं। अगर हाँ, तो "Valid Email Address" प्रिंट होगा, अन्यथा "Invalid Email Address"।
व्यवहारिक रूप से, यह ई-कॉमर्स साइट पर उपयोगकर्ता के रजिस्ट्रेशन के समय ईमेल को वेरिफाई करने के लिए बहुत उपयोगी है। शुरुआती लोगों का प्रश्न अक्सर होता है कि Regex क्यों ज़रूरी है जबकि हम includes() या split() का उपयोग कर सकते हैं? जवाब यह है कि Regex आपको बहुत अधिक सटीकता और लचीलापन देता है।

व्यावहारिक उदाहरण

javascript
JAVASCRIPT Code
// Extract all hashtags from a social media post
let post = "आज का दिन शानदार है! #motivation #javascript #coding";
let hashtagPattern = /#\w+/g;

let hashtags = post.match(hashtagPattern);
console.log(hashtags); // \["#motivation", "#javascript", "#coding"]

Best practices और common mistakes को समझना Regex सीखते समय बहुत ज़रूरी है।
Best practices:

  1. हमेशा modern syntax (/pattern/flags) का उपयोग करें। इससे कोड अधिक पठनीय और maintainable होगा।
  2. यदि आप बड़े टेक्स्ट पर Regex का उपयोग कर रहे हैं तो performance पर ध्यान दें। Regex को अनावश्यक रूप से जटिल न बनाएं।
  3. पैटर्न्स को reusable बनाने के लिए उन्हें वेरिएबल्स में स्टोर करें, ताकि debugging और maintenance आसान हो।
  4. Error handling को न भूलें – यदि आपका Regex गलत होगा तो आपका application गलत परिणाम देगा।
    Common mistakes:

  5. अत्यधिक greedy quantifiers (.*) का उपयोग करना, जिससे unintended matches हो सकते हैं।

  6. anchors (^, $) का उपयोग न करना, जिसके कारण गलत matches आ सकते हैं।
  7. escape characters को भूल जाना, जैसे \. की बजाय सिर्फ . लिखना जिससे सभी characters match हो जाएंगे।
  8. Regex को hardcode करना और patterns को comment में समझाए बिना छोड़ना।
    Debugging tips: छोटे-छोटे पैटर्न बनाकर टेस्ट करें और फिर उन्हें combine करें। Online Regex testers जैसे regex101.com का प्रयोग करें।
    Practical recommendation: हमेशा Regex को production code में डालने से पहले कई test cases पर चेक करें।

📊 त्वरित संदर्भ

Property/Method Description Example
test() Checks if string matches regex /abc/.test("abcdef")
match() Returns array of matches "abcabc".match(/abc/g)
replace() Replaces matched text "hello123".replace(/\d+/,"")
exec() Executes regex and returns details /\d+/.exec("Price 200")
split() Splits string using regex "a,b;c".split(/\[;,]/)

Summary और Next Steps:
इस ट्यूटोरियल में आपने सीखा कि रेगुलर एक्सप्रेशन्स क्या होते हैं, उन्हें जावास्क्रिप्ट में कैसे लिखा जाता है, और कैसे वे वास्तविक एप्लीकेशन्स जैसे पोर्टफोलियो वेबसाइट, ब्लॉग, ई-कॉमर्स साइट, न्यूज़ प्लेटफ़ॉर्म और सोशल मीडिया में उपयोग किए जा सकते हैं। Regex आपको टेक्स्ट के साथ काम करने के लिए अत्यधिक नियंत्रण और लचीलापन प्रदान करता है।
Regex का सीधा संबंध DOM manipulation से है – उदाहरण के लिए, आप किसी HTML फॉर्म में डाले गए इनपुट को वेलिडेट कर सकते हैं। इसी तरह यह बैकएंड कम्युनिकेशन में भी उपयोगी है, जैसे सर्वर को भेजने से पहले डाटा को क्लीन करना।
अगले कदम के रूप में, आप Regex के उन्नत टॉपिक्स जैसे lookaheads, lookbehinds, और capturing groups पर ध्यान दे सकते हैं। इसके अलावा, जावास्क्रिप्ट के string methods (replace, matchAll, search) के साथ Regex का उपयोग करना सीखें।
व्यावहारिक सलाह: छोटे प्रयोगों से शुरुआत करें, धीरे-धीरे जटिल पैटर्न बनाएं, और हमेशा अपने Regex को टेस्ट करें। इस तरह आप न केवल Regex में निपुण बनेंगे बल्कि अपने पूरे कोडबेस की गुणवत्ता भी बढ़ाएंगे।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपना ज्ञान परखें

व्यावहारिक प्रश्नों के साथ इस विषय की अपनी समझ का परीक्षण करें।

4
प्रश्न
🎯
70%
पास करने के लिए
♾️
समय
🔄
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी