रेगुलर एक्सप्रेशन
पाठ के खिलाफ चलाया गया पैटर्न रेगुलर एक्सप्रेशन है। /tea/ सिर्फ यह जाँचता है कि tea कहीं है या नहीं। replace नई स्ट्रिंग लौटाता है और उस जगह mint लिख देता है। इस पेज पर note का मान Order: tea है, और दिखने वाली पंक्ति true / Order: mint है।
नक्शा सहेजता था, यह पेज खोजता है
नक्शे वाला पेज lida / mint / 2 पर रुका था। वह भंडारण था। यह पेज किसी अतिथि को सहेजता नहीं। यह एक स्ट्रिंग के अंदर खोजता है। खोज विफल हो तो false या null मिलता है, और त्रुटि नहीं फेंकी जाती।
पैटर्न अंदर बैठा है, या है ही नहीं
i झंडा बड़े-छोटे अक्षर छोड़ देता है, इसी से /tea/i और Tea मेल खाते हैं। mint tea के अंदर पैटर्न पहले से बैठा है, इसलिए /tea/.test("mint tea") का मान true है। lemon में वह नहीं है, इसलिए /tea/.test("lemon") false है।
console.log(/tea/.test("mint tea"));
console.log(/tea/.test("lemon"));
लॉग पहले true दिखाता है, फिर false। बिंदु किसी एक अक्षर से मेल खाता है, पर पंक्ति-विराम से नहीं, इसलिए /t.a/ भी tea से मेल खाता है। असली बिंदु उलटी तिरछी रेखा और बिंदु लिखकर बनता है: .
पूरी स्ट्रिंग माँगना
^ शुरुआत है और $ अंत है। /^tea$/ केवल tea को मानता है और mint tea को ठुकराता है। ये निशान हटा दो तो /tea/ लंबी नोट के बीच में भी सफल रहता है।
console.log(/^tea$/.test("tea"));
console.log(/^tea$/.test("mint tea"));
लॉग true है, उसके बाद false। अक्षर mint tea में हैं, पर पूरा पाठ सिर्फ tea नहीं है।
हर प्रति, फिर नई स्ट्रिंग
g झंडे के साथ match हर प्रति लौटाता है। replace g के साथ हर प्रति बदलता है और नई स्ट्रिंग देता है। परिणाम असाइन करने तक note वैसा ही रहता है।
const note = "tea and tea";
console.log(note.match(/tea/g));
console.log(note.replace(/tea/g, "mint"));
console.log(note);
match का लॉग दो tea स्ट्रिंग वाला ऐरे है। replace का लॉग mint and mint है। तीसरा लॉग अब भी tea and tea है, क्योंकि replace ने note को बदला नहीं। g के बिना केवल पहली tea बदलती है। कुछ न मिले तो match खाली ऐरे नहीं, null लौटाता है।
जवाब का आकार तरीका चुनता है
जो आकार चाहिए, उसी के हिसाब से तरीका चुनो।
📊 हर तरीका क्या लौटाता है
| तरीका | जवाब का आकार | इस नोट पर |
|---|---|---|
/tea/.test(note) |
true या false | Order: tea के लिए true |
note.match(/tea/) |
एक मेल का ऐरे, या null | शब्द tea और उसकी जगह |
note.match(/tea/g) |
हर प्रति, या null | tea and tea में दो प्रतियाँ |
note.replace(/tea/, "mint") |
नई स्ट्रिंग | Order: mint |
test हाँ या ना है। match टुकड़े थमाता है। replace दोबारा लिखा पाठ थमाता है। उसे रखना हो तो असाइन करो।
पेज दोनों परिणाम लिखता है
पेज Order: tea की जाँच करता है, पेय बदलता है, और दोनों परिणाम लिखता है।
<!DOCTYPE html>
<html>
<body>
<p id="line">…</p>
<script>
const note = "Order: tea";
const found = /tea/.test(note);
const next = note.replace(/tea/, "mint");
document.querySelector("#line").textContent = found + " / " + next;
</script>
</body>
</html>
पंक्ति true / Order: mint पढ़ती है। note खुद अभी भी Order: tea है। lida / mint / 2 नक्शे वाला पेज था।
पाँच छोटे अभ्यास
- mint tea को /tea/ से जाँचो। परिणाम true।
- lemon को /tea/ से जाँचो। परिणाम false।
- mint tea को /^tea$/ से जाँचो। परिणाम false।
- tea and tea को /tea/g से मिलाओ। ऐरे की लंबाई 2।
- पेज पढ़ो। पंक्ति true / Order: mint।
गलतियाँ, और जो याद रखना है
^ और $ के बिना पैटर्न एक टुकड़े से मेल खाता है, पूरी नोट से नहीं। replace मूल को नहीं बदलता।
- match को कुछ न मिले तो null.length मत पढ़ो
- यह उम्मीद मत रखो कि replace नोट note को उसी जगह बदल देगा
- जिस रेगुलर एक्सप्रेशन को test के साथ फिर चलाना है, उस पर g मत लगाओ, क्योंकि वह रुकने की जगह याद रखता है
- असली बिंदु को उलटी तिरछी रेखा और बिंदु लिखो
- पंक्ति को lida / mint / 2 मत पढ़ो
याद रखो
- test का जवाब true या false होता है
- /^tea$/ केवल पूरी स्ट्रिंग tea को मानता है
- g के साथ match हर प्रति गिनाता है, वरना null लौटाता है
- replace नई स्ट्रिंग लौटाता है
- पेज की पंक्ति true / Order: mint है
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी