TypeScript में Regular Expressions: थ्योरी से प्रैक्टिस तक
\nRegular Expressions (RegExp) स्ट्रिंग्स को खोजने, बदलने और वैलिडेट करने का एक शक्तिशाली टूल है। TypeScript में ये JavaScript की तरह ही काम करते हैं, लेकिन इसमें सख्त टाइपिंग जुड़ जाती है, जिससे डिबगिंग आसान और कोड अधिक विश्वसनीय हो जाता है। इस आर्टिकल में हम TypeScript में Regular Expressions के सिंटैक्स, मेथड्स और रियल-लाइफ उदाहरणों को समझेंगे।
\n\nTypeScript में Regular Expressions बनाना
\nTypeScript में RegExp बनाने के दो तरीके हैं: लिटरल सिंटैक्स और कंस्ट्रक्टर के ज़रिए। दोनों ही टाइप किए गए होते हैं और RegExp ऑब्जेक्ट लौटाते हैं।
लिटरल सिंटैक्स
\nसबसे आसान और अक्सर इस्तेमाल किया जाने वाला तरीका है पैटर्न को स्लैश के बीच में लिखना। फ्लैग्स दूसरे स्लैश के बाद लिखे जाते हैं।
\n// "hello" शब्द को केस-इनसेंसिटिव तरीके से खोजें\nconst pattern: RegExp = /hello/i;\nconsole.log(pattern.test('Hello World')); // true\n\nRegExp कंस्ट्रक्टर
\nकंस्ट्रक्टर तब उपयोगी होता है जब पैटर्न डायनामिक रूप से बनाया जाता है। पहला आर्गुमेंट पैटर्न की स्ट्रिंग है, दूसरा फ्लैग्स।
\nconst searchTerm: string = 'TypeScript';\nconst dynamicPattern: RegExp = new RegExp(searchTerm, 'gi');\nconsole.log('I love TypeScript and TypeScript is great'.match(dynamicPattern));\n// ['TypeScript', 'TypeScript']\n\nTypeScript में RegExp के मुख्य मेथड्स
\nTypeScript, JavaScript के सभी रेगुलर एक्सप्रेशन मेथड्स को इनहेरिट करता है। आइए सबसे लोकप्रिय मेथड्स को देखें।
\n\ntest() — मौजूदगी की जाँच
\ntest() मेथड true या false लौटाता है। यह फॉर्म वैलिडेशन के लिए उपयोगी है।
const emailRegex: RegExp = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\nconst email: string = 'user@example.com';\nconsole.log(emailRegex.test(email)); // true\n\nexec() — विस्तृत खोज
\nexec() मैच, इंडेक्स और ग्रुप्स के साथ एक ऐरे लौटाता है। अगर कोई मैच नहीं मिलता तो null लौटाता है।
const datePattern: RegExp = /(\\d{2})\\.(\\d{2})\\.(\\d{4})/;\nconst result: RegExpExecArray | null = datePattern.exec('आज 15.03.2025 है');\nif (result) {\n console.log(`दिन: ${result[1]}, महीना: ${result[2]}, साल: ${result[3]}`);\n // दिन: 15, महीना: 03, साल: 2025\n}\n\nस्ट्रिंग के लिए match() और matchAll()
\nmatch() मेथड स्ट्रिंग पर कॉल किया जाता है और RegExp को स्वीकार करता है। सभी मैच खोजने के लिए matchAll() का उपयोग करें।
const text: string = 'कोड 123, कोड 456, कोड 789';\nconst numbers: RegExpMatchArray | null = text.match(/\\d+/g);\nconsole.log(numbers); // ['123', '456', '789']\n\n// matchAll() एक इटरेटर लौटाता है\nconst matches: IterableIterator<RegExpMatchArray> = text.matchAll(/(\\d+)/g);\nfor (const match of matches) {\n console.log(`संख्या मिली: ${match[1]}`);\n}\n\nTypeScript में Regular Expressions के व्यावहारिक उदाहरण
\nअब थ्योरी को रियल-लाइफ समस्याओं पर लागू करते हैं। सभी उदाहरण TypeScript की सख्त टाइपिंग के साथ लिखे गए हैं।
\n\nउदाहरण 1: ईमेल एड्रेस वैलिडेशन
\nएक फंक्शन बनाएं जो ईमेल की सही जाँच करे। टाइप किए गए Regular Expression का उपयोग करें।
\nfunction isValidEmail(email: string): boolean {\n const emailRegex: RegExp = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n}\n\nconsole.log(isValidEmail('test@mail.ru')); // true\nconsole.log(isValidEmail('invalid-email')); // false\n\nउदाहरण 2: स्ट्रिंग से संख्याएँ निकालना
\nअक्सर टेक्स्ट से सभी संख्याएँ निकालने की ज़रूरत होती है। g फ्लैग के साथ ग्लोबल सर्च का उपयोग करें।
function extractNumbers(text: string): number[] {\n const numberPattern: RegExp = /\\d+/g;\n const matches: RegExpMatchArray | null = text.match(numberPattern);\n return matches ? matches.map(Number) : [];\n}\n\nconst result: number[] = extractNumbers('कीमत: 2500 रुपये, छूट 300 रुपये');\nconsole.log(result); // [2500, 300]\n\