जावास्क्रिप्ट में रेगुलर एक्सप्रेशन उदाहरण सहित: व्यावहारिक रूप से
\n\nरेगुलर एक्सप्रेशन (RegExp) स्ट्रिंग्स को खोजने, बदलने और जाँचने का एक शक्तिशाली उपकरण है। जावास्क्रिप्ट और Node.js में इनका उपयोग फॉर्म वैलिडेशन से लेकर लॉग पार्सिंग तक हर जगह किया जाता है। इस लेख में हम सिंटैक्स की मूल बातें, लोकप्रिय विधियाँ और कुछ व्यावहारिक समस्याओं को हल करेंगे।
\n\n1. रेगुलर एक्सप्रेशन बनाना
\n\nजावास्क्रिप्ट में रेगुलर एक्सप्रेशन बनाने के दो तरीके हैं:
\n\n- \n
- शाब्दिक लेखन (अनुशंसित):
/pattern/flags\n - कंस्ट्रक्टर
new RegExp('pattern', 'flags')\n
उदाहरण:
\n\n// शाब्दिक लेखन\nconst regexLiteral = /hello/i;\n\n// कंस्ट्रक्टर (जब पैटर्न डायनामिक हो तो उपयोगी)\nconst pattern = 'hello';\nconst regexConstructor = new RegExp(pattern, 'i');\n\nconsole.log(regexLiteral.test('Hello World')); // true\nconsole.log(regexConstructor.test('HELLO')); // true\n\n2. RegExp और String की मुख्य विधियाँ
\n\nजावास्क्रिप्ट में रेगुलर एक्सप्रेशन के साथ काम करने के लिए दो प्रकार की विधियाँ उपयोग की जाती हैं: RegExp ऑब्जेक्ट की विधियाँ और स्ट्रिंग की विधियाँ।
2.1 विधि test()
\nजाँचता है कि स्ट्रिंग में कोई मिलान है या नहीं। true या false लौटाता है।
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\nconsole.log(emailRegex.test('user@example.com')); // true\nconsole.log(emailRegex.test('invalid-email')); // false\n\n2.2 विधि exec()
\nमिलान ढूँढता है और विस्तृत जानकारी वाली एक सरणी (या null) लौटाता है। डेटा निकालने के लिए उपयोगी।
const str = 'मूल्य: 1500 रुपये, छूट: 200 रुपये';\nconst priceRegex = /(\\d+)/g;\nlet match;\n\nwhile ((match = priceRegex.exec(str)) !== null) {\n console.log(`संख्या मिली: ${match[1]}`);\n}\n// आउटपुट:\n// संख्या मिली: 1500\n// संख्या मिली: 200\n\n2.3 स्ट्रिंग विधि match()
\nexec() के समान काम करता है, लेकिन स्ट्रिंग से कॉल किया जाता है।
const text = 'जावास्क्रिप्ट — यह बहुत अच्छा है! JS का उपयोग हर जगह होता है।';\nconst result = text.match(/JS/g);\nconsole.log(result); // [ 'JS', 'JS' ]\n\n2.4 स्ट्रिंग विधि replace()
\nमिलान को निर्दिष्ट स्ट्रिंग या फ़ंक्शन के परिणाम से बदलता है।
\n\nconst phone = '+7 (123) 456-78-90';\nconst cleaned = phone.replace(/[\\s\\-\\(\\)\\+]/g, '');\nconsole.log(cleaned); // 71234567890\n\n// कैप्चर ग्रुप का उपयोग करके बदलना\nconst date = '2024-03-15';\nconst formatted = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, '$3.$2.$1');\nconsole.log(formatted); // 15.03.2024\n\n2.5 स्ट्रिंग विधि search()
\nपहले मिलान का इंडेक्स या -1 लौटाता है।
const sentence = 'PythonLib पर जावास्क्रिप्ट सीखें';\nconst index = sentence.search(/javascript/i);\nconsole.log(index); // 6\n\n3. फ्लैग और विशेष वर्ण: व्यावहारिक उदाहरण
\n\nफ्लैग खोज के व्यवहार को बदलते हैं। सबसे लोकप्रिय:
\n- \n
g— वैश्विक खोज (पहले के बजाय सभी मिलान ढूँढता है)। \n i— केस-असंवेदनशील खोज। \n m— बहु-पंक्ति मोड (एंकर^और$प्रत्येक पंक्ति पर काम करते हैं)। \n
फ्लैग m के साथ उदाहरण:
const multiLineText = `पहली पंक्ति\nदूसरी पंक्ति\nतीसरी पंक्ति`;\n\n// फ्लैग m के बिना\nconsole.log(multiLineText.match(/^दूसरी/)); // null\n\n// फ्लैग m के साथ\nconsole.log(multiLineText.match(/^दूसरी/m)); // [ 'दूसरी' ]\n\n