RegExp /^\w+$/
मिलान undefined
क्यों है?
उदाहरण कोड:
alert(/^\w+$/.test(undefined));
यह Firefox 3 में सच को प्रदर्शित करेगा (केवल ब्राउज़र मैं इस पर परीक्षण किया)।
RegExp /^\w+$/
मिलान undefined
क्यों है?
उदाहरण कोड:
alert(/^\w+$/.test(undefined));
यह Firefox 3 में सच को प्रदर्शित करेगा (केवल ब्राउज़र मैं इस पर परीक्षण किया)।
जब undefined
एक स्ट्रिंग (जो रेगेक्स करता है) पर डाला जाता है, तो यह "undefined"
स्ट्रिंग का उत्पादन करता है, जिसे तब मिलान किया जाता है।
/(\w)(\w)(\w)(\w)(\w)/.exec(undefined);
रिटर्न: ["undef", "u", "n", "d", "e", "f"]
यह स्ट्रिंग "undefined"
के रूप में अपरिभाषित इलाज किया जाता है।
RegExp.prototype.exec (स्ट्रिंग) के लिए ECMAScript विशिष्टता अनुभाग 15.10.6.2 देखें। जिसे मैच विधि से बुलाया जाएगा। मैच मूल रूप से निष्पादित होता है जब इसका मूल्यांकन सही होता है।
यहाँ विनिर्देश से शब्द के लिए शब्द है: नियमित अभिव्यक्ति के खिलाफ तार का एक रेगुलर एक्सप्रेशन मिलान करता है और मैच के परिणाम से युक्त एक सरणी वस्तु देता है, या नल अगर स्ट्रिंग से मेल नहीं खाती स्ट्रिंग ToString (स्ट्रिंग) नियमित रूप से अभिव्यक्ति पैटर्न की घटना के लिए खोजा जाता है:
जैसा कि आप देख सकते हैं कि यह किसी भी इनपुट को स्ट्रिंग में अनुवादित करेगा, इसलिए अपरिभाषित 'अपरिभाषित' हो जाता है और यह सत्य से मेल खाता है।
कमांड लाइन में जेस्क्रिप्ट का उपयोग करके ब्राउजर के बाहर और उसी परिणाम प्राप्त करने के साथ-साथ इसका परीक्षण किया।
समझ में आता है, हालांकि यह थोड़ा सा अनजान है। – cdmckay
शायद थोड़ा सा ... लेकिन अपवादों या जावास्क्रिप्ट में ऐसा कुछ भी वास्तविक अवधारणा नहीं है, चुपचाप मरने से थोड़ा कर्कश व्यवहार बेहतर है। –
वैसे त्रुटियां हैं (https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Error) ... – cdmckay