रेगुलर एक्सप्रेशन, जिसे लोकप्रिय रूप से "regex" या "regexp" के रूप में जाना जाता है, वे तार हैं जो एक खोज पैटर्न का वर्णन करते हैं। आप रेगुलर एक्सप्रेशन का उपयोग यह जांचने के लिए कर सकते हैं कि स्ट्रिंग में कोई विशिष्ट पैटर्न है या नहीं, स्ट्रिंग से जानकारी निकालें, और स्ट्रिंग के हिस्सों को नए टेक्स्ट से बदलें।
रेगुलर एक्सप्रेशंस के मूल सिंटैक्स को जानें और जावास्क्रिप्ट में उनका उपयोग कैसे करें।
रेगुलर एक्सप्रेशंस का मूल सिंटैक्स
जावास्क्रिप्ट में आप दो तरीकों से रेगुलर एक्सप्रेशन बना सकते हैं: एक रेगुलर एक्सप्रेशन शाब्दिक का उपयोग करके और रेगुलर एक्सप्रेशन निर्माता।
एक नियमित अभिव्यक्ति शाब्दिक में आगे की स्लैश के बीच संलग्न एक पैटर्न होता है, जिसके बाद एक वैकल्पिक ध्वज होता है।
उदाहरण के लिए:
// झंडे के बिना
कॉन्स्ट रेगेक्सएक्सप्रेशन_1 = /pattern/
// झंडे के साथ
कॉन्स्ट रेगेक्सएक्सप्रेशन_2 = /pattern/झंडा
फ़्लैग एक वैकल्पिक पैरामीटर है जिसे आप इसके व्यवहार को संशोधित करने के लिए रेगुलर एक्सप्रेशन में जोड़ सकते हैं। उदाहरण के लिए:
कॉन्स्ट रेगेक्सफ्लैग = /the/g;
जी ध्वज इंगित करता है कि अभिव्यक्ति सभी घटनाओं से मेल खाना चाहिए, न केवल पहले।
आप का उपयोग करके एक रेगुलर एक्सप्रेशन भी बना सकते हैं रेगुलर एक्सप्रेशन निर्माता। उदाहरण के लिए:
कॉन्स्ट रेगेक्स एक्सप्रेशन = नयारेगुलर एक्सप्रेशन("नमूना", "जी");
रेगुलर एक्सप्रेशन कंस्ट्रक्टर दो पैरामीटर लेता है: एक पैटर्न- एक स्ट्रिंग या एक नियमित अभिव्यक्ति शाब्दिक- और एक ध्वज।
जावास्क्रिप्ट में रेगुलर एक्सप्रेशन के साथ आप दो काफी सामान्य फ़्लैग का उपयोग करेंगे:
- जी: वैश्विक ध्वज रेगुलर एक्सप्रेशन को एकल घटना के बजाय दिए गए स्ट्रिंग में सभी पैटर्न की घटनाओं से मेल खाता है।
- मैं: केस-असंवेदनशील फ़्लैग रेगुलर एक्सप्रेशन को पैटर्न के मामले की अवहेलना करता है और दिए गए स्ट्रिंग में अपरकेस और लोअरकेस वर्णों से मेल खाता है।
आप किसी भी क्रम में एक ही अभिव्यक्ति में एक साथ फ़्लैग का उपयोग कर सकते हैं। उदाहरण के लिए:
कॉन्स्ट रेगेक्स एक्सप्रेशन = नयारेगुलर एक्सप्रेशन("नमूना", "जी");
यह अभिव्यक्ति "पैटर्न" की सभी घटनाओं से मेल खाएगी, चाहे कोई भी मामला हो।
नियमित अभिव्यक्तियों में, कुछ वर्ण, जिन्हें मेटाचैकर के रूप में जाना जाता है, के विशेष अर्थ होते हैं। आप विशिष्ट प्रकार के वर्णों या प्रतिमानों का मिलान करने के लिए उनका उपयोग कर सकते हैं।
यहाँ कुछ सबसे अधिक उपयोग किए जाने वाले मेटाचैकर और उनके अर्थ हैं:
- वाइल्डकार्ड वर्ण (.): नई पंक्ति को छोड़कर यह वर्ण किसी एक वर्ण से मेल खाता है। अज्ञात वर्णों के साथ मिलान पैटर्न के लिए यह एक उपयोगी टूल है।
- क्लेन स्टार (*): यह वर्ण पिछले वर्ण या समूह की शून्य या अधिक घटनाओं से मेल खाता है। यह पूर्ववर्ती वर्ण या समूह को शून्य सहित स्ट्रिंग में कितनी भी बार प्रकट होने की अनुमति देता है।
- वैकल्पिक चरित्र (?): यह वर्ण पिछले वर्ण या समूह की शून्य या एक घटना से मेल खाता है।
- लाइन एंकर की शुरुआत (^): यह वर्ण केवल एक पंक्ति या स्ट्रिंग की शुरुआत से मेल खाता है।
- लाइन एंकर का अंत ($): यह वर्ण एक पंक्ति या स्ट्रिंग के अंत से मेल खाता है।
- कैरेक्टर सेट/क्लास ([]): एक वर्ण सेट स्ट्रिंग में वर्णों के सेट से किसी भी वर्ण से मेल खाता है। आप उन्हें वर्गाकार कोष्ठकों का उपयोग करके परिभाषित करते हैं [] और आप निश्चित वर्णों, विशेष वर्णों या वर्णों के कुछ समूहों का एक सेट निर्दिष्ट कर सकते हैं।
- वैकल्पिक चरित्र (|): यह वर्ण पूर्ववर्ती या निम्न वर्ण या समूह से मेल खाता है। यह OR की तरह ही काम करता है जावास्क्रिप्ट ऑपरेटर.
- ग्रुपिंग कैरेक्टर (()): समूहीकरण चरित्र आपको वर्णों या उप-अभिव्यक्तियों को समूहित करने, उन पर एक इकाई के रूप में ऑपरेटर लागू करने और संचालन के क्रम को नियंत्रित करने की अनुमति देता है।
जावास्क्रिप्ट में एक नियमित अभिव्यक्ति के खिलाफ एक स्ट्रिंग का परीक्षण
जावास्क्रिप्ट में, आप कई विधियों का उपयोग करके एक नियमित अभिव्यक्ति के विरुद्ध एक स्ट्रिंग का परीक्षण कर सकते हैं।
यह खंड मानता है कि आपको रेगुलर एक्सप्रेशंस और पैटर्न की बुनियादी समझ है। यदि आप रेगुलर एक्सप्रेशन से असहज हैं, तो चेक आउट करें रेगुलर एक्सप्रेशंस के लिए शुरुआती गाइड पहला।
परीक्षण विधि
।परीक्षा() विधि एक बूलियन लौटाती है जो इंगित करती है कि नियमित अभिव्यक्ति स्ट्रिंग से मेल खाती है या नहीं। यह विधि तर्क के रूप में खोज करने के लिए एक स्ट्रिंग लेती है। यह साधारण जांच के लिए विशेष रूप से उपयोगी है।
उदाहरण के लिए:
होने देना रेगेक्स = /.com$/;
होने देना स्ट्र = "example.com";
सांत्वना देना.लॉग (regex.test (str)); // सत्य
यह नियमित अभिव्यक्ति एक स्ट्रिंग से मेल खाती है जो ".com" के साथ समाप्त होती है।
निष्पादन विधि
.exec () विधि एक सरणी देता है जिसमें मिलान किए गए पाठ और किसी भी कैप्चर किए गए समूह या होते हैं व्यर्थ अगर यह एक मैच नहीं पाता है। यह विधि तर्क के रूप में खोज करने के लिए एक स्ट्रिंग लेती है। यह अधिक जटिल नियमित अभिव्यक्तियों के लिए उपयोगी है।
उदाहरण के लिए:
होने देना रेगेक्स = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
होने देना स्ट्र = "123-456-7890";
होने देना परिणाम = regex.exec (str);
अगर (परिणाम! == व्यर्थ) {
सांत्वना देना।लकड़ी का लट्ठा(`${परिणाम[0]} एक मान्य फ़ोन नंबर है');
} अन्य {
सांत्वना देना।लकड़ी का लट्ठा("अवैध फोन नंबर");
}
उपरोक्त नियमित अभिव्यक्ति एक स्ट्रिंग से मेल खाती है जो एक वैकल्पिक से शुरू होती है "(", तीन अंक और एक वैकल्पिक")". यह तब एक वैकल्पिक की तलाश करता है "-", ".", या अंतरिक्ष, तीन अंकों के बाद। यह अंत में एक वैकल्पिक की तलाश करता है "-", ".", या स्पेस के बाद स्ट्रिंग के अंत में चार अंक होते हैं।
यह नियमित अभिव्यक्ति "(xxx) xxx-xxxx", "xxx-xxx-xxxx", "xxx.xxx.xxxx", या "xxx xxx xxxx" के प्रारूप में फ़ोन नंबरों से मेल खाती है।
यदि यह एक मैच पाता है, .exec () मिलान किए गए पाठ और किसी भी कैप्चर किए गए समूह (कोष्ठकों द्वारा परिभाषित) वाली एक सरणी देता है। यह प्रत्येक समूह को उसके द्वारा लौटाए गए सरणी में एक अतिरिक्त तत्व के रूप में शामिल करेगा। यह आपको मेल खाने वाले पाठ के विशिष्ट भागों तक पहुँचने की अनुमति देता है, जो आपको एक स्ट्रिंग से जानकारी निकालने में मदद कर सकता है।
बदलें विधि
।बदलना() विधि एक नियमित अभिव्यक्ति और एक स्ट्रिंग के बीच एक मैच की खोज करती है और मिलान किए गए पाठ को एक निर्दिष्ट प्रतिस्थापन पाठ के साथ बदल देती है। यह स्ट्रिंग ऑब्जेक्ट्स का एक तरीका है, और यह तर्कों के रूप में नियमित अभिव्यक्ति और प्रतिस्थापन स्ट्रिंग लेता है।
उदाहरण के लिए:
होने देना स्ट्रिंग = "तेज, भूरी लोमडी आलसी कुत्ते के उपर कूद गई।";
होने देना अभिव्यक्ति = /The/gi;
होने देना newString = string.replace (अभिव्यक्ति, "ए");
सांत्वना देनालॉग (न्यूस्ट्रिंग); // "एक तेज भूरी लोमड़ी एक आलसी कुत्ते के ऊपर कूद जाती है।"
यह उदाहरण कॉल करता है बदलना() विधि पर डोरी चर, नियमित अभिव्यक्ति पास करना, अभिव्यक्ति. नियमित अभिव्यक्ति स्ट्रिंग में "द" की सभी घटनाओं से मेल खाएगी, चाहे मामला कुछ भी हो। रिप्लेस मेथड के लिए कॉल इसे प्रत्येक घटना को स्ट्रिंग "ए" से बदलने का निर्देश देता है।
रेगुलर एक्सप्रेशंस का उपयोग करते समय प्रदर्शन संबंधी विचार
हालांकि रेगुलर एक्सप्रेशंस स्ट्रिंग्स के मिलान और हेरफेर में मदद करते हैं, वे प्रदर्शन के मामले में महंगे भी हो सकते हैं। पैटर्न को जितना संभव हो उतना विशिष्ट बनाना और उन्हें सरल रखना उनके प्रदर्शन को बनाए रखने के लिए महत्वपूर्ण है।