हाइपरटेक्स्ट भाषाओं के आगमन से पहले, या यूं कहें कि उससे भी पहलेजिस क्षण से यह स्पष्ट हो गया कि न केवल खोज करना आवश्यक था, बल्कि इसे कुछ शर्तों के तहत, एक विशिष्ट स्थान पर, बदले हुए डेटा के साथ, सही मात्रा में करना भी आवश्यक था, सामान्य खोज और प्रतिस्थापन कार्य किसी भी अनुभवी प्रोग्रामर के लिए उपयुक्त थे। खोज कला की उत्कृष्ट कृतियाँ प्रोग्रामिंग भाषाओं में बनाई गईं, और डेटाबेस नमूना स्थितियों के रूप में अधिक परिष्कृत हो गए, संग्रहीत प्रक्रियाओं, ट्रिगर्स और भारी संबंधपरक सूचना रचनाओं से नमूना लेने के अन्य साधनों से सुसज्जित हो गए। नियमित अभिव्यक्तियों के आगमन से कोई क्रांति नहीं हुई, लेकिन यह जानकारी खोजने और बदलने के लिए एक उपयोगी और सुविधाजनक उपकरण बन गया। उदाहरण के लिए, जावास्क्रिप्ट ईमेल नियमित अभिव्यक्ति आगंतुकों के पंजीकरण को काफी सरल बनाती है और गैर-मौजूद पते पर संदेश भेजकर साइट को लोड नहीं करती है।
यह कहना कि जावास्क्रिप्ट में एक नियमित अभिव्यक्ति हैसशर्त और चक्रीय ऑपरेटरों द्वारा तैयार किए गए इंडेक्सऑफ () कॉल के सुविचारित अनुक्रमों की तुलना में बहुत बेहतर करना असंभव है, लेकिन यह निश्चित रूप से तर्क दिया जा सकता है कि इसने स्क्रिप्ट कोड को कॉम्पैक्ट बना दिया है, लेकिन अनभिज्ञ लोगों के लिए खराब समझ में आता है।
रेगएक्सपी ऑब्जेक्ट = टेम्पलेट + इंजन
रेगुलर एक्सप्रेशन एक टेम्प्लेट + इंजन हैं।पहला नियमित अभिव्यक्ति ही है - एक जावास्क्रिप्ट ऑब्जेक्ट - रेगएक्सपी, दूसरा टेम्पलेट निष्पादक है जो इसे स्ट्रिंग पर लागू करता है। प्रत्येक प्रोग्रामिंग भाषा के लिए नियमित अभिव्यक्ति लागू करने वाले इंजन अलग-अलग होते हैं। यद्यपि सभी अंतर महत्वपूर्ण नहीं हैं, इसे ध्यान में रखना महत्वपूर्ण है, साथ ही इसे उपयोग करने से पहले नियमित अभिव्यक्ति की सावधानीपूर्वक जांच करना सुनिश्चित करें।
नियमित अभिव्यक्ति लिखते समय विशेष संकेतनकाफी सुविधाजनक और काफी प्रभावी है, लेकिन इसके लिए डेवलपर से देखभाल, सटीकता और धैर्य की आवश्यकता होती है। नियमित अभिव्यक्ति पैटर्न नोटेशन की आदत डालने में कुछ समय लगता है। यह फैशन के लिए श्रद्धांजलि नहीं है, यह जावास्क्रिप्ट नियमित अभिव्यक्ति तंत्र के कार्यान्वयन का तर्क है।
नियमित अभिव्यक्ति पैटर्न
दो विकल्पों की अनुमति है:
var expOne = /abc*/i;
var expTwo = RegExp('abc*', 'i');
आमतौर पर पहली विधि का उपयोग किया जाता है। दूसरे मामले में, उद्धरण चिह्नों का उपयोग किया जाता है, इसलिए "" वर्ण का उपयोग करने के लिए, इसे सामान्य नियमों के अनुसार टाला जाना चाहिए।
"i" एक ध्वज है जो दर्शाता है कि "मामला महत्वपूर्ण नहीं है"। आप झंडे "जी" - "वैश्विक खोज" और "एम" - मल्टीलाइन खोज का भी उपयोग कर सकते हैं।
"/" चिन्ह का प्रयोग आमतौर पर किसी पैटर्न को दर्शाने के लिए किया जाता है।
रेगुलर एक्सप्रेशन का प्रारंभ और अंत
"^" वर्ण उस वर्ण को निर्दिष्ट करता है जिससेरेगुलर एक्सप्रेशन शुरू होता है, और "$" निर्धारित करता है कि कौन सा अक्षर अंत में दिखना चाहिए। आपको किसी अभिव्यक्ति के अंदर उनके साथ प्रयोग नहीं करना चाहिए; वहां उनका एक अलग अर्थ होता है।
उदाहरण के लिए
var eRegExp = नया RegExp(cRegExp, "i");
var cRegRes = "";
var sTest = "AbcZ";
यदि (eRegExp.test(sTest)) {
cRegRes += "- हाँ";
} अन्य {
cRegRes += "- नहीं";
}
var dTestLine = document.getElementById('scTestLine');
dTestLine.innerHTML = "अभिव्यक्ति /"+cRegExp+"/ पंक्ति ""+ sTest+""+cRegRes के लिए।
"scTestLine" तत्व में परिणाम शामिल होगा (cRegExp वैरिएबल का संबंधित मान है):
अभिव्यक्ति /^AbcZ$/ स्ट्रिंग "abcz" के लिए - हाँ
यदि आप "i" ध्वज हटाते हैं, तो परिणाम होगा:
अभिव्यक्ति /^AbcZ$/ स्ट्रिंग "abcz" के लिए - नहीं
नियमित अभिव्यक्ति की सामग्री
रेगुलर एक्सप्रेशन वर्णों का एक अनुक्रम है जो खोज का विषय है। /qwerty/ अभिव्यक्ति इस विशेष अनुक्रम की घटना की खोज करती है:
अभिव्यक्ति /qwerty/ स्ट्रिंग "qwerty" के लिए - हाँ
स्ट्रिंग "123qwerty456" के लिए अभिव्यक्ति /qwerty/ - हाँ
"^" वर्ण अभिव्यक्ति का सार बदल देता है:
स्ट्रिंग "123qwerty456" के लिए अभिव्यक्ति /^qwerty/ - नहीं
अभिव्यक्ति /^qwerty/ स्ट्रिंग "qwerty456" के लिए - हाँ
इसी प्रकार पंक्ति के अंत वाले चरित्र के लिए भी।नियमित अभिव्यक्तियाँ अनुक्रमों की अनुमति देती हैं: उदाहरण के लिए, [ए-जेड], [ए-जेड], [0-9] - निर्दिष्ट मामले या संख्याओं में लैटिन वर्णमाला के सभी अक्षर। रूसी अक्षरों का भी उपयोग करने की अनुमति है, लेकिन आपको पंक्तियों (जहां आप जो खोज रहे हैं वह ढूंढ रहे हैं) और पृष्ठों के एन्कोडिंग पर ध्यान देना चाहिए। अक्सर रूसी अक्षरों, साथ ही विशेष वर्णों को कोड के रूप में निर्दिष्ट करना बेहतर होता है।
रेगुलर एक्सप्रेशन बनाते समय, आप ऐसा कर सकते हैंकिसी निश्चित स्थान पर कुछ वर्णों की उपस्थिति के लिए विकल्पों को इंगित करें, उनकी संख्या इस प्रकार निर्धारित करें: "*" = पुनरावृत्ति 0 या अधिक बार; "+" = 1 या अधिक बार दोहराएँ; {1,} "+" के समान; {n} = बिल्कुल n बार दोहराएँ; {n,} = n या अधिक बार दोहराएँ; {n,m} = n से m बार दोहराएं।
वर्गाकार कोष्ठकों का उपयोग करके, आप निर्दिष्ट कर सकते हैंसेट से प्रतीक के भिन्न रूप। यह इस तरह दिख रहा है। [एबीसीडी] = [ए-डी] = चार वर्णों में से कोई: "ए", "बी", "सी" या "डी"। आप इसके विपरीत संकेत कर सकते हैं. सेट में निर्दिष्ट वर्णों के अलावा कोई भी वर्ण: [^abcd] = "ए", "बी", "सी" या "डी" के अलावा कोई भी वर्ण। "?" इंगित करता है कि प्रतीक इस स्थान पर मौजूद नहीं हो सकता है। "।" नई पंक्ति के अलावा किसी अन्य वर्ण को परिभाषित करता है। ये हैं "n", "r", "u2028" या "u2029"। अभिव्यक्ति "s*|S*" = "[s|S]*" का अर्थ है नई पंक्तियों सहित किसी भी वर्ण की खोज करना।
सरलीकृत नियमित अभिव्यक्तियाँ
अभिव्यक्ति "[s|S]*" किसी स्थान या उसकी अनुपस्थिति की खोज है, अर्थात पंक्ति में मौजूद हर चीज़ की खोज है। इस मामले में, पदनाम "एस" का अर्थ एक स्थान है, और "एस" का अर्थ इसकी अनुपस्थिति है।
इसी तरह, आप दशमलव अंक खोजने के लिए "डी" का उपयोग कर सकते हैं, और "डी" एक गैर-अंकीय वर्ण ढूंढेगा। नोटेशन "एफ", "आर" और "एन" फॉर्म-फीड, कैरिज रिटर्न और लाइन-फीड के अनुरूप हैं।
टैब वर्ण "t" है और लंबवत टैब वर्ण "v" है। अंकन "w" लैटिन वर्णमाला के किसी भी वर्ण (अक्षर, संख्या, अंडरस्कोर) = [A-Za-z0-9_] से मेल खाएगा।
अंकन "W" [^A-Za-z0-9_] के बराबर है। इसका मतलब कोई भी ऐसा अक्षर है जो अक्षर, संख्या या "_" नहीं है।
वर्ण खोजें " " = NUL वर्ण खोजें। "xHH" या "uHHHH" खोजें = क्रमशः HH या HHHH कोड वाले वर्ण की खोज करें। H एक हेक्साडेसिमल अंक है.
अनुशंसित नियमित अभिव्यक्ति शब्दांकन और एन्कोडिंग
स्ट्रिंग के विभिन्न संस्करणों पर किसी भी नियमित अभिव्यक्ति का सावधानीपूर्वक परीक्षण करना महत्वपूर्ण है।
रेगुलर एक्सप्रेशन त्रुटियाँ बनाने में अनुभवीकम होगा, लेकिन फिर भी, आपको हमेशा यह ध्यान रखना चाहिए कि नियमित अभिव्यक्ति लिखने के नियमों के बारे में आपका अपना ज्ञान वास्तविकता के अनुरूप नहीं हो सकता है, खासकर जब "नियमित अभिव्यक्ति" को एक भाषा से दूसरी भाषा में स्थानांतरित किया जाता है।
क्लासिक्स (सटीक संकेत) और के बीच चयन करनारेगुलर एक्सप्रेशन का सरलीकृत संस्करण, पहले वाले को प्राथमिकता देना बेहतर है। आखिरकार, क्लासिक्स में यह हमेशा स्पष्ट रूप से इंगित किया जाता है कि क्या और कैसे खोजा जा रहा है। यदि रेगुलर एक्सप्रेशन या खोज स्ट्रिंग में रूसी अक्षर हैं, तो सभी पंक्तियाँ और वह पृष्ठ जिस पर रेगुलर एक्सप्रेशन चलाने वाला जावास्क्रिप्ट कोड एक एकल एन्कोडिंग में परिवर्तित किया जाना चाहिए।
जब उन वर्णों को संसाधित किया जाता है जो लैटिन वर्णमाला से संबंधित नहीं हैं, तो वर्णों के बजाय वर्ण कोड निर्दिष्ट करने पर विचार करना समझ में आता है।
जावास्क्रिप्ट में खोज एल्गोरिदम लागू करते समय, नियमित अभिव्यक्ति की सावधानीपूर्वक जांच की जानी चाहिए। वर्ण एन्कोडिंग को नियंत्रित करना विशेष रूप से महत्वपूर्ण है।
नियमित अभिव्यक्ति में कोष्ठक
वर्गाकार कोष्ठक प्रतीक के प्रकार निर्दिष्ट करते हैं,जो एक निश्चित स्थान पर मौजूद या अनुपस्थित होना चाहिए, और गोल वाले अनुक्रम प्रकार हैं। लेकिन यह केवल एक सामान्य नियम है. इसका कोई अपवाद नहीं है, लेकिन कई अलग-अलग अनुप्रयोग हैं।
var cRegExp = "[a-z]*.(png|jpg|gif)";
var eRegExp = नया RegExp(cRegExp, "i");
var cRegRes = "";
var sTest = "picture.jpg";
यदि (eRegExp.test(sTest)) {
cRegRes += "- हाँ";
} अन्य {
cRegRes += "- नहीं";
}
परिणाम:
अभिव्यक्ति /[a-z]*.(png|jpg|gif)/ स्ट्रिंग "picture.jpg" के लिए - हाँ
अभिव्यक्ति /^[a-d][a-z]*.(png|jpg|gif)/ स्ट्रिंग "picture.jpg" के लिए - नहीं
अभिव्यक्ति /^[a-d][a-z]*.(png|jpg|gif)/ स्ट्रिंग "apicture.jpg" के लिए - हाँ
अभिव्यक्ति /^[a-d][a-z]*.(png|jpg|gif)/ स्ट्रिंग "apicture.jg" के लिए - नहीं
यह विशेष रूप से ध्यान दिया जाना चाहिए कि तारांकन के बाद कोई भी चीज़ शून्य बार दिखाई दे सकती है। इसका मतलब यह है कि "नियमित शेड्यूल" कम से कम सबसे अप्रत्याशित तरीके से काम कर सकता है।
रेगएक्सपी जांच - ईमेल परीक्षण
जावास्क्रिप्ट में, रेगुलर एक्सप्रेशन की दो विधियाँ होती हैं, परीक्षण और निष्पादन, और स्ट्रिंग ऑब्जेक्ट्स पर उनके तरीकों (फ़ंक्शंस) में उपयोग किया जा सकता है: खोज, विभाजन, प्रतिस्थापित और मिलान।
परीक्षण विधि पहले ही प्रदर्शित की जा चुकी है, यह आपको नियमित अभिव्यक्ति की वैधता की जांच करने की अनुमति देती है। विधि परिणाम: सत्य/असत्य।
निम्नलिखित जावास्क्रिप्ट नियमित अभिव्यक्तियों पर विचार करें। ईमेल सत्यापन "मुश्किल, लेकिन सटीक" में से एक है:
var eRegExp = /^(([^<>()[]\.,;:s@"]+(.[^<>()[]\.,;:s@"]+)*)|( ".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1 ,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/;
पंक्ति के लिए var sTest = "[email protected]" सत्य देता है, अर्थात यह पंक्ति एक वैध ईमेल पता है। परीक्षण eRegExp.test(sTest) विधि का उपयोग करके किया गया था।
व्यावहारिक उपयोग: ई-मेल प्रसंस्करण
निष्पादन विधि एक सरणी को आउटपुट करती है, कॉल करती है:
var aResult = eRegExp.exec(sTest);
cRegRes = "<br/>" + aResult.length + "<br/>";
(var i=0; i<aResult.length; i++) के लिए {
cRegRes += aResult[i] + "<br/>";
}
यह परिणाम देता है:
9
[email protected]
Slava.Chip
Slava.Chip
।टुकड़ा
अपरिभाषित
sci.by
अपरिभाषित
sci.by
विज्ञान.
अन्य विधियाँ भी इसी तरह काम करती हैं।उन्हें स्वयं जांचने की अनुशंसा की जाती है। नियमित अभिव्यक्तियों के विकास और उपयोग का अभ्यास करना उचित है; यहां कोड की प्रतिलिपि बनाना हमेशा उचित नहीं होता है।
लोकप्रिय नियमित कार्यक्रम
के लिए जावास्क्रिप्ट नियमित अभिव्यक्ति प्रदान की गईईमेल ही एकमात्र चीज़ नहीं है, कई सरल विकल्प भी हैं। उदाहरण के लिए, /^[w-.]+@[w-]+.[a-z]{2,3}$/i. हालाँकि, यह विकल्प ईमेल पता रिकॉर्ड करने के सभी विकल्पों को ध्यान में नहीं रखता है।
निःसंदेह, सहकर्मियों के अनुभव की समीक्षा करना आवश्यक है,जावास्क्रिप्ट में अपना खुद का रेगुलर एक्सप्रेशन डिज़ाइन करने से पहले उनके द्वारा प्रस्तावित तरीकों का विश्लेषण करें। लेकिन कुछ कठिनाइयां भी हैं. हमें यह नहीं भूलना चाहिए कि जावास्क्रिप्ट में, नियमित अभिव्यक्ति (कॉपी किए जाने पर उनके उदाहरण) आवश्यक वर्णों की नकल कर सकते हैं: "", "/" या उद्धरण। इससे एक त्रुटि उत्पन्न होगी जिसे ढूंढने में काफी समय लग सकता है।
सामान्य "मानवीय पहलू" को ध्यान में रखना महत्वपूर्ण है।आख़िरकार, एक फ़ोन नंबर के लिए एक औपचारिक जावास्क्रिप्ट नियमित अभिव्यक्ति जो एक आगंतुक (व्यक्ति) हो सकता है, को विभिन्न तरीकों से निर्दिष्ट किया जा सकता है: 123-45-67, (29) 1234567, 80291234567 या +375291234567। और यह सभी एक ही संख्या है. कई टेम्प्लेट लिखने का विकल्प हमेशा स्वीकार्य नहीं होता है, और किसी संख्या को लिखने के नियम को कठोरता से तय करने से अनावश्यक असुविधा या प्रतिबंध पैदा हो सकता है। /^d[d() -]{4,14}d$/i विकल्प फ़ोन नंबर सत्यापन के अधिकांश मामलों के लिए उपयुक्त है।
यदि आपको जावास्क्रिप्ट को नियमित रूप से लिखने की आवश्यकता हैअभिव्यक्तियाँ जो केवल संख्याओं की जाँच करती हैं, तो ऐसे साधारण मामले में भी स्पष्टीकरण की आवश्यकता होती है। इसमें एक पूर्णांक या भिन्न, वैज्ञानिक संकेतन या नियमित अंकन, एक सकारात्मक संख्या या एक नकारात्मक अंकन पर विचार करना चाहिए। आप मुद्रा प्रतीक की उपस्थिति, दशमलव बिंदु के बाद अंकों की संख्या और संख्या के पूर्णांक भाग को त्रिक में विभाजित करने को भी ध्यान में रख सकते हैं।
अभिव्यक्ति /^d+$/i केवल अंकों का परीक्षण करेगी, जबकि अभिव्यक्ति /^d+.d+$/i आपको किसी संख्या के भिन्नात्मक भाग को इंगित करने के लिए एक बिंदु का उपयोग करने की अनुमति देती है।
जावास्क्रिप्ट में, रेगुलर एक्सप्रेशन जाँच कर सकते हैंइनपुट डेटा के प्रारूप को सख्ती से इंगित करने के लिए उपयोग किया जाना चाहिए, जो विशेष रूप से प्रश्नावली, पासपोर्ट डेटा, कानूनी पते आदि दर्ज करते समय प्रासंगिक है।
तारीख की जाँच करना - जटिल चीजों के बारे में सरल
आइए जावास्क्रिप्ट रेगुलर एक्सप्रेशन पर एक नजर डालें।किसी दिनांक के उदाहरण, जैसे किसी नंबर या टेलीफ़ोन नंबर के उदाहरण, कठोरता और लचीलेपन के बीच एक विकल्प का प्रतिनिधित्व करते हैं। इवेंट की तारीख आवश्यक डेटा में से एक है जिसे अक्सर दर्ज करने की आवश्यकता होती है। लेकिन इनपुट को एक विशिष्ट प्रारूप में तय करना: "dd-mm-yyyy" या "d.m.yy" अक्सर ग्राहक असंतोष का कारण बनता है। क्लासिक HTML फॉर्म द्वारा निष्पादित दिन से महीने के इनपुट फ़ील्ड में संक्रमण, केवल एक अंक दर्ज करने पर नहीं हो सकता है, और दूसरा दर्ज करने से कठिनाई हो सकती है। उदाहरण के लिए, दिन फ़ील्ड में 3 पहले ही दर्ज किया जा चुका है, और अगला अंक 2 पहले वाले को प्रतिस्थापित नहीं करता है, और इसमें 32 जोड़ा जाता है, जो स्वाभाविक रूप से असुविधा का कारण बनेगा।
नियमित अभिव्यक्ति की दक्षता और सुविधाआगंतुक के साथ बातचीत की समग्र संरचना काफी हद तक इस पर निर्भर करती है। एक मामले में, दिनांक इंगित करने के लिए एक फॉर्म इनपुट फ़ील्ड का उपयोग करना उचित है; दूसरे मामले में, आपको दिन, महीने और वर्ष के लिए अलग-अलग फ़ील्ड प्रदान करने की आवश्यकता है। लेकिन फिर लीप वर्ष, महीनों की संख्या और उनमें दिनों की संख्या की जाँच के लिए अतिरिक्त "कोड लागत" होगी।
खोजें और बदलें, रेगुलर एक्सप्रेशन मेमोरी
जावास्क्रिप्ट प्रतिस्थापन (नियमित अभिव्यक्ति)स्ट्रिंग ऑब्जेक्ट विधि का उपयोग करें और आपको एक मान ढूंढने और इसे तुरंत बदलने की अनुमति दें। यह इनपुट त्रुटियों को ठीक करने, फॉर्म फ़ील्ड की सामग्री को संपादित करने और डेटा को एक प्रस्तुति प्रारूप से दूसरे में परिवर्तित करने के लिए उपयोगी है।
var cRegExp = /([a-z]+)s([a-z]+)s([a-z]+)/i; // खोज करते समय, तीन "वेरिएबल" बनाए जाते हैं
var sTest = "यह लेख अच्छा है!";
var cRegRes = sTest.replace(cRegExp, "$2, $3, $1");
var dTestLine = document.getElementById('scTestLine');
dTestLine.innerHTML = "लाइन ""+ sTest+"" के लिए अभिव्यक्ति "+cRegExp+" का परिणाम होगा: "+cRegRes;
नतीजा:
अभिव्यक्ति /([a-z]+)s([a-z]+)s([a-z]+)/i पंक्ति के लिए "यह लेख अच्छा है!" यह पता चला: यह एक अच्छा लेख है!
निष्पादित होने पर, कोष्ठक की प्रत्येक जोड़ी परिणाम को "चर" $n में संग्रहीत करती है, जहां n कोष्ठक की जोड़ी की संख्या ($1, $2, ...) है। आम तौर पर स्वीकृत के विपरीत, यहां चरों को 1 से शुरू करके क्रमांकित किया गया है, 0 से नहीं।
सामान्य सिफारिशें
रेगुलर एक्सप्रेशन कोड को सरल बनाता है, लेकिन इसमें समय लगता हैइसका विकास अक्सर मायने रखता है. आप सरल निर्माणों के साथ काम करना शुरू कर सकते हैं, फिर जो आपने किया है उसे अधिक जटिल अभिव्यक्तियों में संयोजित कर सकते हैं। आप रेगुलर एक्सप्रेशन या विशेष स्थानीय टूल की जाँच के लिए विभिन्न ऑनलाइन सेवाओं का उपयोग कर सकते हैं।
सबसे अच्छा विकल्प अपना खुद का बनाना हैनए विकास की जाँच के लिए रेगुलर एक्सप्रेशन लाइब्रेरी और हमारा अपना टूल। यह अनुभव को समेकित करने और जल्दी से विश्वसनीय और सुविधाजनक डिज़ाइन बनाने का तरीका सीखने का सबसे अच्छा तरीका है।
वर्णों और स्ट्रिंग्स की पुनरावृत्ति का उपयोग करना, अर्थातदोहराव की संख्या दर्शाने वाले विशेष वर्ण "*", "+" और घुंघराले ब्रेसिज़ को सरलता और समीचीनता के सिद्धांतों द्वारा निर्देशित किया जाना चाहिए। यह समझना महत्वपूर्ण है कि एक रेगुलर एक्सप्रेशन, काम शुरू करने से लेकर परिणाम प्राप्त होने तक, पूरी तरह से इस्तेमाल किए गए ब्राउज़र इंजन की दया पर निर्भर होता है। सभी जावास्क्रिप्ट भाषाएँ समतुल्य नहीं हैं। प्रत्येक ब्राउज़र नियमित अभिव्यक्तियों की व्याख्या करने के तरीके में अपनी व्यक्तिगत प्राथमिकताएँ ला सकता है।
संगतता केवल पृष्ठों और तालिकाओं के बारे में नहीं हैशैलियाँ, यह नियमित अभिव्यक्तियों से भी संबंधित है। जावास्क्रिप्ट का उपयोग करने वाले पेज को केवल तभी डीबग किया हुआ माना जा सकता है जब वह कई ब्राउज़रों पर सफलतापूर्वक चलता हो।
जावास्क्रिप्ट, स्ट्रिंग और रेगएक्सपी
दाईं ओर, ग्राहक स्तर पर काम करें, अर्थातजावास्क्रिप्ट में विज़िटर के ब्राउज़र के लिए डेवलपर से उच्च योग्यता की आवश्यकता होती है। काफी समय पहले, ब्राउज़र के स्वयं के टूल का उपयोग करके या तीसरे पक्ष के एक्सटेंशन, कोड संपादकों और स्वतंत्र कार्यक्रमों का उपयोग करके जावास्क्रिप्ट कोड को डीबग करना संभव हो गया था।
हालाँकि, सभी मामलों में डिबगर ऐसा नहीं कर सकताडेवलपर को अच्छा समर्थन, त्रुटियों की त्वरित पहचान और बाधाओं का पता लगाने के साथ प्रबंधित करें और प्रदान करें। वह समय जब कंप्यूटर गणनाओं पर केंद्रित था वह सुदूर अतीत की बात है। अब सूचना पर ध्यान केंद्रित किया जा रहा है और स्ट्रिंग ऑब्जेक्ट एक महत्वपूर्ण भूमिका निभाने लगे हैं। संख्याएँ स्ट्रिंग बन गई हैं, और वे अपना असली सार केवल सही समय पर और सही जगह पर प्रकट करती हैं।
नियमित अभिव्यक्ति स्ट्रिंग की शक्ति को बढ़ाती है, लेकिन इसके लिए उचित सम्मान की आवश्यकता होती है। जब यह चल रहा हो तो रेगएक्सप को डिबग करना, भले ही इसे सिम्युलेटेड किया जा सकता हो, बहुत दिलचस्प विचार नहीं है।
रेगएक्सपी ऑब्जेक्ट की संरचना और तर्क, स्ट्रिंग ऑब्जेक्ट का अर्थ, जावास्क्रिप्ट के सिंटैक्स और शब्दार्थ को समझना सुरक्षित और विश्वसनीय कोड, प्रत्येक पृष्ठ और संपूर्ण साइट के स्थिर संचालन की एक निश्चित गारंटी है।