TypeScript में रेगुलर एक्सप्रेशन का परिचय
रेगुलर एक्सप्रेशन (regex) स्ट्रिंग्स को खोजने, बदलने और मान्य करने के लिए एक शक्तिशाली उपकरण है। TypeScript में, JavaScript की तरह, इन्हें अंतर्निहित RegExp ऑब्जेक्ट के माध्यम से कार्यान्वित किया जाता है। हालाँकि, TypeScript सख्त टाइपिंग जोड़ता है, जो रेगुलर एक्सप्रेशन के साथ काम को अधिक सुरक्षित और पूर्वानुमानित बनाता है। इस लेख में, हम TypeScript में रेगुलर एक्सप्रेशन के सिंटैक्स, विधियों, टाइपिंग और व्यावहारिक उदाहरणों पर चर्चा करेंगे।
रेगुलर एक्सप्रेशन क्या है?
रेगुलर एक्सप्रेशन वर्णों का एक क्रम है जो खोज पैटर्न को परिभाषित करता है। TypeScript में, रेगुलर एक्सप्रेशन दो तरीकों से बनाए जाते हैं:
- शाब्दिक सिंटैक्स:
const regex: RegExp = /\\d+/g; - RegExp कंस्ट्रक्टर:
const regex: RegExp = new RegExp('\\\\d+', 'g');
दूसरा तरीका तब उपयोगी होता है जब पैटर्न वेरिएबल्स से गतिशील रूप से बनाया जाता है।
TypeScript में रेगुलर एक्सप्रेशन के साथ काम करने की मुख्य विधियाँ
1. test() विधि — मिलान की उपस्थिति की जाँच
test() विधि boolean लौटाती है — क्या स्ट्रिंग में कोई मिलान है।
const emailRegex: RegExp = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;const email: string = 'user@example.com';
if (emailRegex.test(email)) { console.log('ईमेल सही है');} else { console.log('ईमेल गलत है');}// आउटपुट: ईमेल सही है2. exec() विधि — मिलान का विवरण प्राप्त करना
exec() विधि RegExpExecArray | null ऑब्जेक्ट लौटाती है। इसमें मिलान, कैप्चर ग्रुप और स्ट्रिंग में स्थिति शामिल होती है।
const dateRegex: RegExp = /(\\d{2})\\.(\\d{2})\\.(\\d{4})/;const dateString: string = 'तारीख: 15.03.2023';const match: RegExpExecArray | null = dateRegex.exec(dateString);
if (match) { console.log(`दिन: ${match[1]}, महीना: ${match[2]}, वर्ष: ${match[3]}`); // आउटपुट: दिन: 15, महीना: 03, वर्ष: 2023}3. match() विधि — स्ट्रिंग में सभी मिलान खोजना
स्ट्रिंग की match() विधि एक रेगुलर एक्सप्रेशन लेती है और मिलानों की एक सरणी या null लौटाती है।
const text: string = 'बिल्लियाँ और बिल्ले — सबसे अच्छे!';const catRegex: RegExp = /बिल्ल[ीे]?/gi;const matches: RegExpMatchArray | null = text.match(catRegex);
if (matches) { console.log(matches); // ['बिल्लियाँ', 'बिल्ले']}4. replace() विधि — पैटर्न के अनुसार बदलना
replace() विधि मिलानों को निर्दिष्ट स्ट्रिंग या फ़ंक्शन के परिणाम से बदल देती है।
const phone: string = '+7 (123) 456-78-90';const cleanPhone: string = phone.replace(/[\\s\\-\\(\\)\\+]/g, '');console.log(cleanPhone); // 71234567890
// कैप्चर ग्रुप का उपयोग करके बदलनाconst name: string = 'इवानोव इवान';const reversed: string = name.replace(/(\\w+)\\s(\\w+)/, '$2 $1');console.log(reversed); // इवान इवानोव5. split() विधि — स्ट्रिंग को विभाजित करना
स्ट्रिंग को भागों में विभाजित करने के लिए रेगुलर एक्सप्रेशन का उपयोग किया जा सकता है।
const data: string = 'सेब;नाशपाती,संतरा:केला';const fruits: string[] = data.split(/[;,.:]/);console.log(fruits); // ['सेब', 'नाशपाती', 'संतरा', 'केला']TypeScript में रेगुलर एक्सप्रेशन की टाइपिंग
TypeScript शाब्दिक सिंटैक्स का उपयोग करते समय स्वचालित रूप से वेरिएबल के प्रकार को RegExp के रूप में निर्धारित करता है। हालाँकि, जटिल प्रोजेक्ट्स में स्पष्ट प्रकार एनोटेशन की आवश्यकता हो सकती है:
// स्पष्ट प्रकार निर्दिष्ट करनाconst hexColor: RegExp = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
// RegExp लौटाने वाले फ़ंक्शन के लिए टाइपिंगfunction createUrlRegex(baseUrl: string): RegExp { return new RegExp(`^${baseUrl}/[a-z]+$`, 'i');}
const myRegex: RegExp = createUrlRegex('https://example.com');console.log(myRegex.test('ht