TypeScript में नियमित अभिव्यक्तियाँ उदाहरणों के साथ: व्यवहार में

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

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

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

TypeScript में नियमित अभिव्यक्तियाँ: सिद्धांत से व्यवहार तक

\n

नियमित अभिव्यक्तियाँ (regex) स्ट्रिंग्स के साथ काम करने के लिए एक शक्तिशाली उपकरण हैं। TypeScript में, वे न केवल खोज, प्रतिस्थापन और सत्यापन करने की अनुमति देते हैं, बल्कि सख्त टाइपिंग भी सुनिश्चित करते हैं, जो संकलन चरण में त्रुटियों की संख्या को कम करता है। इस लेख में, हम वास्तविक उदाहरणों पर TypeScript में नियमित अभिव्यक्तियों का उपयोग करने का तरीका समझेंगे: ईमेल सत्यापन से लेकर सुरक्षित डेटा निष्कर्षण तक।

\n\n

1. नियमित अभिव्यक्तियाँ बनाना और टाइप करना

\n

TypeScript में, नियमित अभिव्यक्ति दो तरीकों से बनाई जा सकती है: लिटरल या RegExp कंस्ट्रक्टर का उपयोग करके। पहला तरीका बेहतर है क्योंकि यह छोटा है और इसमें बैकस्लैश को एस्केप करने की आवश्यकता नहीं है।

\n\n
// लिटरल (अनुशंसित तरीका)\nconst emailRegex: RegExp = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n\n// कंस्ट्रक्टर (डायनामिक पैटर्न के लिए उपयोगी)\nconst pattern: string = 'hello';\nconst dynamicRegex: RegExp = new RegExp(pattern, 'gi');\n\nconsole.log(emailRegex.test('user@example.com')); // true\nconsole.log(dynamicRegex.test('Hello, world!')); // true (फ़्लैग i केस को अनदेखा करता है)\n
\n\n

टाइप एनोटेशन : RegExp पर ध्यान दें। TypeScript लिटरल के लिए स्वचालित रूप से टाइप का अनुमान लगाता है, लेकिन स्पष्ट रूप से निर्दिष्ट करने से कोड को दस्तावेज़ित करने में मदद मिलती है।

\n\n

2. फ़्लैग्स और उनकी टाइपिंग

\n

फ़्लैग्स नियमित अभिव्यक्ति के व्यवहार को बदलते हैं। TypeScript में, फ़्लैग्स का टाइप स्ट्रिंग लिटरल या एनुम के माध्यम से निर्दिष्ट किया जा सकता है। आइए मुख्य फ़्लैग्स पर विचार करें:

\n\n
    \n
  • g — वैश्विक खोज (पहले मिलान के बाद नहीं रुकता);
  • \n
  • i — केस-असंवेदनशील मोड;
  • \n
  • m — मल्टीलाइन मोड (^ और $ प्रत्येक पंक्ति के लिए काम करते हैं);
  • \n
  • s — डॉट नई पंक्ति वर्ण से मेल खाता है;
  • \n
  • u — Unicode समर्थन;
  • \n
  • y — अंतिम मिलान स्थिति से खोज (sticky)।
  • \n
\n\n
// स्ट्रिंग के माध्यम से फ़्लैग्स की टाइपिंग\nconst regexWithFlags: RegExp = /test/gim;\n\n// फ़्लैग्स की जाँच\nconsole.log(regexWithFlags.flags); // "gim"\nconsole.log(regexWithFlags.global); // true\nconsole.log(regexWithFlags.ignoreCase); // true\nconsole.log(regexWithFlags.multiline); // true\n
\n\n

डायनामिक फ़्लैग्स के लिए, string टाइप का उपयोग करें, लेकिन बेहतर होगा कि इसे लिटरल यूनियन के साथ स्वीकार्य मानों तक सीमित किया जाए:

\n\n
type RegexFlags = 'g' | 'i' | 'm' | 's' | 'u' | 'y';\nconst flags: RegexFlags = 'gi'; // त्रुटि: 'gi' एक अलग फ़्लैग नहीं है\n// सही: स्ट्रिंग पास करना\nconst dynamicFlags: string = 'gi';\nconst regex: RegExp = new RegExp('pattern', dynamicFlags);\n
\n\n

3. RegExp विधियाँ और परिणामों की टाइपिंग

\n

TypeScript में नियमित अभिव्यक्तियों के साथ काम करने के लिए मुख्य विधियाँ:

\n\n
    \n
  • test() — boolean लौटाता है;
  • \n
  • exec() — RegExpExecArray | null लौटाता है;
  • \n
  • match() — स्ट्रिंग की विधि, RegExpMatchArray | null लौटाता है;
  • \n
  • replace() — मिलानों को बदलता है और स्ट्रिंग लौटाता है;
  • \n
  • search() — पहले मिलान का इंडेक्स या -1 लौटाता है।
  • \n
\n\n

आइए exec() के साथ एक उदाहरण देखें, जो कैप्चर ग्रुप तक पहुँच प्रदान करता है:

\n\n
const dateRegex: RegExp = /(\\d{4})-(\\d{2})-(\\d{2})/;\nconst dateStr: string = 'आज 2025-03-15';\n\nconst match: RegExpExecArray | null = dateRegex.exec(dateStr);\n\nif (match) {\n  const [fullMatch, year, month, day] = match;\n  console.log(`वर्ष: ${year}, महीना: ${month}, दिन: ${day}`);\n  // आउटपुट: वर्ष: 2025, महीना: 03, दिन: 15\n} else {\n  console.log('दिनांक नहीं मिला');\n}\n
\n\n

ध्यान दें: match[0] पूर्ण मिलान है, और इंडेक्स 1, 2, 3 कैप्चर ग्रुप हैं। TypeScript डिस्ट्रक्चरिंग का उपयोग करने पर सही ढंग से टाइप का अनुमान लगाता है।

ब्लॉग

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