अध्याय १४

नियमित अभिव्यक्ति

एक नियमित अभिव्यक्ति एक वस्तु हो जुन या त रेगएक्स (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'

परिणाम मिल्दो जुल्दो ""

    कुनै परिणाम मिल्दो जुल्दो छैन ""