Node.js के लिए उदाहरणों सहित जावास्क्रिप्ट में रेगुलर एक्सप्रेशन
रेगुलर एक्सप्रेशन (regex या regexp) टेक्स्ट जानकारी खोजने, बदलने और निकालने के लिए एक शक्तिशाली उपकरण है। जावास्क्रिप्ट और Node.js में इनका उपयोग सर्वव्यापी है: फॉर्म सत्यापन से लेकर लॉग पार्सिंग और अनुरोध प्रसंस्करण तक। यह लेख आपको व्यावहारिक उदाहरणों के साथ रेगुलर एक्सप्रेशन के सिंटैक्स में महारत हासिल करने में मदद करेगा, जिन्हें आप Node.js में तुरंत चला सकते हैं।
1. जावास्क्रिप्ट में रेगुलर एक्सप्रेशन बनाना
जावास्क्रिप्ट में रेगुलर एक्सप्रेशन बनाने के दो तरीके हैं:
- लिटरल सिंटैक्स — पैटर्न स्लैश में संलग्न होता है
/pattern/flags। स्थिर पैटर्न के लिए अनुशंसित। - RegExp कंस्ट्रक्टर —
new RegExp('pattern', 'flags')। इसका उपयोग तब किया जाता है जब पैटर्न गतिशील रूप से बनता है।
// लिटरल तरीकाconst regexLiteral = /hello/i;
// RegExp कंस्ट्रक्टरconst pattern = 'hello';const regexConstructor = new RegExp(pattern, 'i');
console.log(regexLiteral.test('Hello World')); // trueconsole.log(regexConstructor.test('Hello World')); // true2. रेगुलर एक्सप्रेशन के साथ काम करने की मुख्य मेथड
Node.js और ब्राउज़रों में regex के साथ काम करने के लिए चार प्रमुख मेथड उपलब्ध हैं। आइए प्रत्येक को उदाहरणों के साथ समझते हैं।
मेथड test()
जाँचता है कि स्ट्रिंग में पैटर्न से मेल खाने वाला भाग है या नहीं। true या false लौटाता है।
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;console.log(emailPattern.test('user@example.com')); // trueconsole.log(emailPattern.test('invalid-email')); // falseमेथड exec()
मेल खाने वाले भाग को खोजता है और विवरण (मेल खाने वाला भाग, ग्रुप, इंडेक्स, इनपुट स्ट्रिंग) के साथ एक ऐरे लौटाता है। यदि कोई मेल नहीं मिलता है तो null लौटाता है।
const text = 'मूल्य: 1500 रुपये, छूट: 300 रुपये';const regex = /(\\d+)\\sरुपये/g;let match;
while ((match = regex.exec(text)) !== null) { console.log(`मिला: ${match[1]} रुपये`); // आउटपुट: "मिला: 1500 रुपये" // आउटपुट: "मिला: 300 रुपये"}मेथड match()
स्ट्रिंग पर कॉल किया जाता है। मेल खाने वाले भागों की एक ऐरे (फ्लैग g के साथ) या विस्तृत जानकारी (फ्लैग g के बिना) लौटाता है।
const logLine = 'त्रुटि 404: पृष्ठ नहीं मिला';const errorRegex = /(\\d{3}):\\s(.+)/;const result = logLine.match(errorRegex);
console.log(result[0]); // '404: पृष्ठ नहीं मिला'console.log(result[1]); // '404'console.log(result[2]); // 'पृष्ठ नहीं मिला'मेथड replace()
मेल खाने वाले भागों को निर्दिष्ट स्ट्रिंग या फ़ंक्शन के परिणाम से बदलता है। डेटा फ़ॉर्मेटिंग के लिए उपयुक्त है।
const phone = '+7 (999) 123-45-67';const cleanPhone = phone.replace(/[\\s\\-\\(\\)\\+]/g, '');console.log(cleanPhone); // '79991234567'
// ग्रुप का उपयोग करके बदलनाconst date = '2024-01-15';const formattedDate = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, '$3.$2.$1');console.log(formattedDate); // '15.01.2024'3. रेगुलर एक्सप्रेशन के मुख्य सिंबल और फ्लैग
regex के साथ प्रभावी ढंग से काम करने के लिए, बुनियादी मेटासिंबल और फ्लैग को समझना आवश्यक है। यहाँ उनमें से कुछ प्रमुख हैं:
खोज के लिए सिंबल
.— कोई भी सिंबल (नई लाइन को छोड़कर)\\d— अंक (0-9)\\w— अक्षर, अंक या अंडरस्कोर\\s— स्पेस सिंबल^— स्ट्रिंग की शुरुआत$— स्ट्रिंग का अंत*— 0 या अधिक दोहराव+— 1 या अधिक दोहराव?— 0 या 1 दोहराव{n,m}— n से m तक दोहराव
फ्लैग
g— वैश्विक खोज (सभी मेल खाने वाले भाग)