मैं आईई के साथ एक संभावित बग में भाग गया हूं जहां जावास्क्रिप्ट को कॉल किया गया है। length
फ़ंक्शन एक मान देता है जो 1 से बंद होता है जब स्ट्रिंग .toLocaleString()
से ली गई थी।इंटरनेट एक्सप्लोरर रिटर्निंग स्ट्रिंग की गलत लंबाई
var d = new Date();
var locale = navigator.language;
var month = d.toLocaleString(locale, { month: "long"});
// month.length will return the length of the month string +1
//(eg: if month = "March", month.length will return 6.)
दिलचस्प है, इसके बाद के संस्करण के कोड उदाहरण का अनुसरण के लिए (आईई में) सच वापस आ जाएगी:
month[0] == "";
month[1] == "M";
month[2] == "a";
month[3] == "r";
month[4] == "c";
month[5] == "h";
मेरी विशेष मामले में (महीने [0] "एम" होना चाहिए), यह एक समस्या पैदा कर रहा है जहां मुझे महीने में .slice()
की आवश्यकता है। उदाहरण: यदि महीना मार्च है, तो आईई "मार्च" के बजाय month.slice(0,3)
के लिए "मा" वापस कर देगा।
क्या यह आईई के साथ एक ज्ञात बग है? क्या इस समस्या के लिए कोई फिक्स और/या कामकाज है?
आईई और क्रोम/फ़ायरफ़ॉक्स/सफारी में fiddle चलाएं और ध्यान दें कि month.length
आईई में गलत है।
मेरे पर्यावरण:
ओएस: विन सर्वर 2012 R2
IE संस्करण: 11.0.9600.18231 (अपडेट संस्करण: 11.0.29)
स्थान: अंग्रेजी/अमेरिका
हमें अपना ओएस, वर्तमान लोकेल और ब्राउज़र संस्करण निर्माण दें। – Knu
यह विचित्र है। मुझे एक ही परिणाम मिलता है। कोशिश की .trim(), और .replace (/ \ s + /, ""), लेकिन अभी भी –
पर अतिरिक्त रिक्त वर्ण दिखा रहा है 'month.charCodeAt (0) 'का परिणाम क्या है? – apsillers