अध्याय १४
नियमित अभिव्यक्ति
एक नियमित अभिव्यक्ति एक वस्तु हो जुन या त रेगएक्स (RegEx)
कन्स्ट्रक्टरको साथ निर्माण गर्न सकिन्छ वा अगाडिको स्लेश (/)
क्यारेक्टरमा ढाँचा संलग्न गरेर शाब्दिक मानको रूपमा लेख्न सकिन्छ। नियमित अभिव्यक्ति सिर्जना गर्नका लागि वाक्यविन्यासहरू तल देखाइएको छ।
// using regular expression constructor
new RegExp(pattern[, flags]);
// using literals
/pattern/modifiers
शाब्दिक प्रयोग गरेर नियमित अभिव्यक्ति सिर्जना गर्दा फ्ल्यागहरू वैकल्पिक हुन्छन्। माथि उल्लिखित विधि प्रयोग गरेर समान नियमित सिर्जना गर्ने उदाहरण निम्नानुसार छ।
let re1 = new RegExp("xyz");
let re2 = /xyz/;
दुबै तरिकाहरूले रेगेक्स वस्तु सिर्जना गर्नेछ र समान विधिहरू र गुणहरू छन्। त्यहाँ केसहरू छन् जहाँ हामीलाई नियमित अभिव्यक्ति सिर्जना गर्न गतिशील मानहरू आवश्यक हुन सक्छ, त्यस अवस्थामा, शाब्दिकहरूले काम गर्दैन र कन्स्ट्रक्टरसँग जानुपर्छ।
यदि हामी नियमित अभिव्यक्तिको भाग हुनको लागि अगाडिको स्लेश राख्न चाहन्छौं भने, हामीले ब्याकस्ल्याश ()
को साथ अगाडिको स्लेश (/)
बाट बच्नु पर्दछ।
केस-असंवेदनशील खोजीहरू प्रदर्शन गर्न प्रयोग गरिने विभिन्न परिमार्जकहरू हुन्:
g
- ग्लोबल खोज (पहिलो खेल पछि रोकिनुको सट्टा सबै खेलहरू फेला पार्दछ)i
- केस असंवेदनशील खोजm
- मल्टिलाइन मिलान
क्यारेक्टरहरूको दायरा फेला पार्न नियमित अभिव्यक्तिमा कोष्ठकहरू प्रयोग गरिन्छ । तीमध्ये केही तल उल्लेख गरिएको छ।
[abc]
- कोष्ठकको बीचमा कुनै पनि क्यारेक्टर फेला पार्नुहोस्[^abc]
- कुनै पनि क्यारेक्टर फेला पार्नुहोस्, कोष्ठकको बीचमा होइन[0-9]
- कोष्ठकको बीचमा कुनै पनि अङ्क फेला पार्नुहोस्[^0-9]
- कुनै पनि क्यारेक्टर फेला पार्नुहोस्, कोष्ठकको बीचमा होइन (गैर-अंक)(x|y)
- द्वारा अलग गरिएको विकल्पहरू मध्ये कुनै पनि फेला पार्नुहोस् |
मेटाक्यारेक्टरहरू विशेष क्यारेक्टर हरू हुन् जसको नियमित अभिव्यक्तिमा विशेष अर्थ हुन्छ। यी क्यारेक्टरहरू तल थप वर्णन गरिएको छ:
पत्रकहारा | वर्णन |
---|---|
. |
एकल क्यारेक्टर एक्स्पेट नयाँलाइन वा टर्मिनेटर मिलाउनुहोस् |
\w |
शब्द क्यारेक्टर मिलाउनुहोस् (अल्फान्यूमेरिक क्यारेक्टर [a-zA-Z0–9_] ) |
\W |
एउटा गैर-शब्द क्यारेक्टर मिलाउनुहोस् (जस्तै [^a-zA-Z0–9_] ) |
\d |
कुनै पनि अङ्कको क्यारेक्टर मिलाउनुहोस् (जस्तै [0-9] ) |
\D |
कुनै पनि गैर-डिजिटी क्यारेक्टर मिलाउनुहोस् |
\s |
सेतो स्थान क्यारेक्टर मिलाउनुहोस् (खाली स्थान, ट्याब आदि) |
\S |
सेतो खाली स्थान नभएको क्यारेक्टर मिलाउनुहोस् |
\b |
शब्दको सुरु/अन्त्यमा मिलान गर्नुहोस् |
\B |
मिलान गर्नुहोस् तर शब्दको सुरु / अन्त्यमा होइन |
\0 |
शून्य (NULL) क्यारेक्टर मिलाउनुहोस् |
\n |
नयाँ रेखा क्यारेक्टर मिलाउनुहोस् |
\f |
फारम फिड क्यारेक्टर मिलाउनुहोस् |
\r |
क्यारिज रिटर्न क्यारेक्टर मिलाउनुहोस् |
\t |
Match a tab character |
\v |
ट्याब ठाडो क्यारेक्टर मिलाउनुहोस् |
\xxx |
अक्टल नम्बरले निर्दिष्ट गरेको क्यारेक्टर मिलाउनुहोस् xxx |
\xdd |
हेक्साडेसिमल नम्बर dd द्वारा निर्दिष्ट क्यारेक्टर मिलाउनुहोस् |
\udddd |
हेक्साडेसिमल सङ्ख्या dddd द्वारा निर्दिष्ट गरिएको युनिकोड क्यारेक्टर मिलाउनुहोस् |
रेजेक्स द्वारा समर्थित विधिहरू तल सूचीबद्ध छन्।
नाम | वर्णन |
---|---|
constructor |
रेगएक्सप वस्तुको प्रोटाइप सिर्जना गर्ने प्रकार्य फर्काउँछ |
global |
g परिमार्जक सेट गरिएको छ कि छैन जाँच गर्दछ |
ignoreCase |
i परिमार्जक सेट गरिएको छ कि छैन जाँच गर्दछ |
lastIndex |
अर्को मिलान सुरु गर्ने अनुक्रमणिका निर्दिष्ट गर्दछ |
multiline |
यदि m परिमार्जक सेट गरिएको छ भने जाँच गर्दछ |
source |
स्ट्रिङको पाठ फर्काउँछ |
exec() |
म्याचका लागि टेस्ट गर्नुहोस् र पहिलो म्याच फर्काउँछ, यदि म्याच भएन भने यसले शून्य (null) फर्काउँछ |
test() |
म्याचको लागि परीक्षण गर्नुहोस् र सत्य वा गलत फर्काउँछ |
toString() |
नियमित एक्स्रेसनको स्ट्रिङ मान फर्काउँछ |
एक complie()
विधि नियमित अभिव्यक्ति को अनुपालन गर्दछ र अवमूल्यन गरिएको छ।
नियमित अभिव्यक्तिका केही उदाहरणहरू यहाँ देखाइएको छ।
let text = "The best things in life are free";
let result = /e/.exec(text); // looks for a match of e in a string
// result: e
let helloWorldText = "Hello world!";
// Look for "Hello"
let pattern1 = /Hello/g;
let result1 = pattern1.test(helloWorldText);
// result1: true
let pattern1String = pattern1.toString();
// pattern1String : '/Hello/g'