यदि आपको एक चर को संसाधित करना है जिसमें पूरा पथ शामिल है (उदा .:) thePath = "http://stackoverflow.com/directory/subdirectory/filename.jpg"
और आप केवल "फ़ाइल नाम" वापस करना चाहते हैं जिसका आप उपयोग कर सकते हैं:
theName = thePath.split("/").slice(-1).join().split(".").shift();
परिणाम होगा नाम == "फ़ाइल नाम" ;
इसे अपने क्रोम डिबगर के कंसोल विंडो में निम्न कमांड लिखने की कोशिश करने के लिए:
window.location.pathname.split("/").slice(-1).join().split(".").shift()
यदि आपको केवल फ़ाइल नाम और उसके विस्तार (उदा .:) को संसाधित करना है theNameWithExt = "filename.jpg"
:
theName = theNameWithExt.split(".").shift();
परिणाम होगा नाम == "फ़ाइल नाम" , ऊपर के समान;
टिप्पणियाँ:
- पहला एक थोड़ा धीमा है क्योंकि अधिक संचालन करता है; लेकिन दोनों मामलों में काम करता है, दूसरे शब्दों में यह किसी दिए गए स्ट्रिंग से विस्तार के बिना फ़ाइल नाम को निकाल सकता है जिसमें एक पथ या फ़ाइल नाम पूर्व के साथ है। जबकि दूसरा केवल तभी काम करता है जब दिए गए वेरिएबल में फ़ाइल नाम जैसे ext के साथ एक फ़ाइल नाम होता है। लेकिन थोड़ा जल्दी होता है।
- दोनों समाधान स्थानीय और सर्वर दोनों फ़ाइलों के लिए काम करते हैं;
लेकिन मैं न तो अन्य उत्तरों के साथ तुलना प्रदर्शन और न ही ब्राउज़र या ओएस संगतता के बारे में कुछ नहीं कह सकता।
काम स्निपेट 1: पूरा रास्ता
var thePath = "http://stackoverflow.com/directory/subdirectory/filename.jpg";
theName = thePath.split("/").slice(-1).join().split(".").shift();
alert(theName);
कार्य स्निपेट 2: विस्तार के साथ फ़ाइल नाम
var theNameWithExt = "filename.jpg";
theName = theNameWithExt.split("/").slice(-1).join().split(".").shift();
alert(theName);
कार्य स्निपेट 2: डबल एक्सटेंशन के साथ फ़ाइल नाम
var theNameWithExt = "filename.tar.gz";
theName = theNameWithExt.split("/").slice(-1).join().split(".").shift();
alert(theName);