"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट रेगेक्स परीक्षण विफल क्यों होता है?

जावास्क्रिप्ट रेगेक्स परीक्षण विफल क्यों होता है?

2024-11-10 को प्रकाशित
ब्राउज़ करें:612

Why Does JavaScript RegEx Testing Fail?

जावास्क्रिप्ट रेगएक्स परीक्षण विफल: समस्या को डिकोड करना

जावास्क्रिप्ट के दायरे में, एक डेवलपर को एक पेचीदा दुविधा का सामना करना पड़ा: उनका नियमित अभिव्यक्ति पैटर्न लगातार किसी भी इनपुट के लिए गलत परिणाम मिले। ऑनलाइन संपादकों के साथ अपना कोड साझा करने पर, यह आश्चर्यजनक रूप से इच्छानुसार कार्य करने लगा। बारीकी से जांच करने पर अपराधी का पता चला: अनुचित बैकस्लैश हैंडलिंग। -9]|1[0-2])/\d{4}$", "g");

हालाँकि, एक स्ट्रिंग से रेगुलर एक्सप्रेशन बनाते समय, प्रत्येक बैकस्लैश वर्ण को दोगुना करना महत्वपूर्ण है। ऐसा इसलिए है क्योंकि पार्सर स्ट्रिंग की शाब्दिक व्याख्या करता है और बैकस्लैश के लिए अपने स्वयं के नियम लागू करता है, जिसके परिणामस्वरूप एक संशोधित अभिव्यक्ति होती है जो इच्छित पैटर्न से भिन्न होती है।

var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");
^(0[1-9]|1[0-2])/d{4}$

इसके बजाय, स्ट्रिंग के भीतर बैकस्लैश को दोगुना किया जाना चाहिए:

^(0[1-9]|1[0-2])/d{4}$

यह संशोधन सुनिश्चित करता है कि पार्सर व्याख्या करता है पैटर्न सही ढंग से, इसे महीनों और वर्षों के लिए वांछित प्रारूप को पहचानने की अनुमति देता है। -9]|1[0-2])\/\d{4}$/g;

यह स्ट्रिंग इंटरपोलेशन की आवश्यकता को समाप्त करता है और पैटर्न को व्यक्त करने के लिए अधिक सहज वाक्यविन्यास प्रदान करता है।
विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729229116 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3