जावास्क्रिप्ट में सबस्ट्रिंग की जाँच: शुरुआती लोगों के लिए 3 तरीके

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

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

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

"क्या इस स्ट्रिंग में वह शब्द है?" — एक सवाल जो हर शुरुआती को परेशान करता है

\n

आप एक स्क्रिप्ट लिख रहे हैं, सर्वर से जवाब प्राप्त कर रहे हैं या बस शहरों की सूची को फ़िल्टर कर रहे हैं। और अचानक आप अटक जाते हैं: जावास्क्रिप्ट में कैसे जाँचें कि क्या किसी स्ट्रिंग में कोई विशिष्ट सबस्ट्रिंग है? यह सवाल Stack Overflow पर एक वास्तविक हिट है, हजारों डेवलपर्स इसे पूछते हैं। और यह व्यर्थ नहीं है: स्ट्रिंग्स किसी भी एप्लिकेशन का आधार हैं, और उनमें सबस्ट्रिंग्स को जल्दी से खोजने की क्षमता एक बुनियादी कौशल है।

\n

इस ट्यूटोरियल में, हम तीन कार्यशील तरीकों पर चर्चा करेंगे: सबसे आधुनिक (और सभी को पसंद आने वाले) से लेकर क्लासिक तक। आप जानेंगे कि कब किस विधि का उपयोग करना है, और ऐसा कोड लिखना सीखेंगे जिसे इंटरव्यू में दिखाने में शर्म न आए।

\n\n

विधि #1: includes() — सरलता और सुंदरता

\n

यदि आप आधुनिक JavaScript (ES6 और उससे ऊपर) में कोड लिख रहे हैं, तो includes() आपका सबसे अच्छा दोस्त है। यह विधि true या false लौटाती है और एक सामान्य अंग्रेजी प्रश्न की तरह पढ़ी जाती है: "क्या स्ट्रिंग में सबस्ट्रिंग शामिल है?"।

\n\n

सिंटैक्स

\n
string.includes(searchString, position)
\n
    \n
  • searchString — वह जो हम खोज रहे हैं (आवश्यक)।
  • \n
  • position — वैकल्पिक पैरामीटर, किस इंडेक्स से खोज शुरू करनी है (डिफ़ॉल्ट 0)।
  • \n
\n\n

कार्य में उदाहरण

\n
const message = "नमस्ते, दुनिया! JavaScript बहुत अच्छा है।";\n\nconsole.log(message.includes("JavaScript")); // true\nconsole.log(message.includes("Python"));     // false\nconsole.log(message.includes("दुनिया", 10));    // false (10वें कैरेक्टर से खोज)\n
\n

ध्यान दें: यह विधि केस-सेंसिटिव है। "javascript" और "JavaScript" अलग-अलग स्ट्रिंग्स हैं। यदि आप केस को अनदेखा करना चाहते हैं, तो दोनों स्ट्रिंग्स को लोअर केस में बदलें:

\n
const text = "हम JavaScript सीख रहे हैं";\nconst keyword = "javascript";\n\nconsole.log(text.toLowerCase().includes(keyword.toLowerCase())); // true\n
\n\n

कब उपयोग करें

\n
    \n
  • फॉर्म वैलिडेशन (ईमेल में "@" की जाँच)।
  • \n
  • सूची में खोज (उत्पादों को फ़िल्टर करना)।
  • \n
  • कोई भी सरल उपस्थिति जाँच।
  • \n
\n\n

विधि #2: indexOf() — क्लासिक जो कभी खत्म नहीं होता

\n

includes() के आने से पहले, सभी indexOf() का उपयोग करते थे। यह सिर्फ "हाँ/नहीं" नहीं बताता, बल्कि सबस्ट्रिंग के पहले आने का इंडेक्स लौटाता है। यदि सबस्ट्रिंग नहीं मिलती है, तो यह -1 लौटाता है।

\n\n

सिंटैक्स

\n
string.indexOf(searchValue, fromIndex)
\n\n

उदाहरण

\n
const sentence = "मुझे JavaScript और Python पसंद है।";\n\nconsole.log(sentence.indexOf("पसंद")); // 2\nconsole.log(sentence.indexOf("Ruby"));  // -1\n\n// उपस्थिति की जाँच\nif (sentence.indexOf("JavaScript") !== -1) {\n    console.log("हाँ, स्ट्रिंग में JavaScript है!");\n}\n
\n\n

नाजुक बिंदु: क्यों !== -1?

\n

कई शुरुआती if (str.indexOf("word")) लिखते हैं — और यह एक गलती है। यदि सबस्ट्रिंग बिल्कुल शुरुआत में है (इंडेक्स 0), तो if (0) की स्थिति false मानी जाती है। हमेशा -1 से तुलना करें।

\n\n

indexOf() का उपयोग includes() के बजाय कब करें

\n
    \n
  • जब सबस्ट्रिंग की शुरुआत के इंडेक्स की आवश्यकता हो (उदाहरण के लिए, स्ट्रिंग का एक हिस्सा काटने के लिए)।
  • \n
  • पुराने कोड के साथ काम करना (IE और ब्राउज़र के पुराने संस्करण)।
  • \n
  • जब सभी उपस्थितियों को खोजने की आवश्यकता हो (लूप में fromIndex बदलकर)।
  • \n
\n\n

विधि #3: search() और RegExp — जब लचीलेपन की आवश्यकता हो

\n

क्या होगा यदि आपको सिर्फ एक शब्द नहीं, बल्कि एक पैटर्न खोजना है? उदाहरण के लिए, "JS" से शुरू होने वाले सभी शब्द" या "+7-xxx-xxx-xx-xx" प्रारूप में फोन नंबर। यहाँ रेगुलर एक्सप्रेशन और search() विधि मदद करते हैं।

\n\n

सिंटैक्स

\n
string.search(regexp)
\n

ब्लॉग

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