दिलचस्प पोस्ट
HTML5 कैनवास बनाम एसवीजी बनाम डिवेल सी # के लिए क्या स्थिर विश्लेषण उपकरण उपलब्ध हैं? यूनिकोड में यूटीएफ -8 स्ट्रिंग कैसे परिवर्तित करें? नियमित अभिव्यक्ति के साथ हाइफ़न कैसे मिलान करें? Const तर्कों और ओवरलोडिंग के साथ कार्य डेटाफ्रेम को कैसे धुएं? जावास्क्रिप्ट के साथ यूटीएफ -8 डिकोड करें .htaccess में 'हैश' यूआरएल फिर से लिखना एक्स 86 पर क्षैतिज फ्लोट वेक्टर योग करने का सबसे तेज़ तरीका जावास्क्रिप्ट सेटइनर्वर और `यह` समाधान जेपीईजी मेटाडाटा (अभिविन्यास) पढ़ने में समस्या वादा – क्या एक वादा रद्द करना संभव है? UINavigationBar ऊँचाई बदलें जावास्क्रिप्ट के माध्यम से छवि का औसत रंग प्राप्त करें एंड्रॉइड मीडियाप्लेयर त्रुटि (1, -2147483648)

जावास्क्रिप्ट RegEx नहीं कार्य करना

मेरे पास निम्न जावास्क्रिप्ट कोड है:

function checkLegalYear() { var val = "02/2010"; if (val != '') { var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g"); if (regEx.test(val)) { //do something } else { //do something } } } 

हालांकि, मेरा रेगएक्स परीक्षण हमेशा किसी भी मूल्य के लिए मैं झूठ देता हूं (02/2010)। क्या मेरे कोड में कुछ गड़बड़ है? मैंने इस कोड को विभिन्न जावास्क्रिप्ट संपादकों पर ऑनलाइन करने की कोशिश की है और यह ठीक काम करता है।

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट RegEx नहीं कार्य करना"

क्योंकि आप एक स्ट्रिंग से अपना नियमित अभिव्यक्ति बना रहे हैं, आपको अपने बैकस्लैश को दोहरा देना होगा:

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

इसके बजाय नियमित अभिव्यक्ति वाक्यविन्यास का उपयोग करने के लिए यहां कोई कारण नहीं है:

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

संपादित करें – मैंने यह भी नोट किया है कि एक एम्बेडेड "/" वर्ण है, जिसे उद्धृत करना होगा यदि आप regex वाक्यविन्यास का उपयोग करते हैं