मैंने अभी इसका अपना संस्करण बनाया है। मेरे फ़ंक्शन का उपयोग आप जो कुछ भी चाहते हैं उसे निकालने के लिए कर सकते हैं, अगर आपको इसकी सभी आवश्यकता नहीं है, तो आप आसानी से कुछ कोड निकाल सकते हैं।
<html>
<body>
<script type="text/javascript">
// Useful function to separate path name and extension from full path string
function pathToFile(str)
{
var nOffset = Math.max(0, Math.max(str.lastIndexOf('\\'), str.lastIndexOf('/')));
var eOffset = str.lastIndexOf('.');
if(eOffset < 0 && eOffset < nOffset)
{
eOffset = str.length;
}
return {isDirectory: eOffset === str.length, // Optionally: && nOffset+1 === str.length if trailing slash means dir, and otherwise always file
path: str.substring(0, nOffset),
name: str.substring(nOffset > 0 ? nOffset + 1 : nOffset, eOffset),
extension: str.substring(eOffset > 0 ? eOffset + 1 : eOffset, str.length)};
}
// Testing the function
var testcases = [
"C:\\blabla\\blaeobuaeu\\testcase1.jpeg",
"/tmp/blabla/testcase2.png",
"testcase3.htm",
"C:\\Testcase4", "/dir.with.dots/fileWithoutDots",
"/dir.with.dots/another.dir/"
];
for(var i=0;i<testcases.length;i++)
{
var file = pathToFile(testcases[i]);
document.write("- " + (file.isDirectory ? "Directory" : "File") + " with name '" + file.name + "' has extension: '" + file.extension + "' is in directory: '" + file.path + "'<br />");
}
</script>
</body>
</html>
निम्नलिखित उत्पादन करेगा:
- 'Testcase1' नाम की फ़ाइल में एक्सटेंशन है: 'jpeg' निर्देशिका में है: 'C: \ blabla \ blaeobuaeu'
- 'Testcase2' नाम की फ़ाइल में एक्सटेंशन है: 'png' निर्देशिका में है: '/ tmp / blabla'
- 'Testcase3' नाम की फ़ाइल में एक्सटेंशन है: 'htm' निर्देशिका में है: ''
- 'Testcase4' नाम की निर्देशिका में विस्तार है: '' निर्देशिका में है: 'C:'
- 'FileWithoutDots' नाम की निर्देशिका का विस्तार है: '' निर्देशिका में है: '/ dir.with.dots'
- निर्देशिका के नाम के साथ '' का विस्तार है: '' निर्देशिका में है: '/ dir.with.dots/another.dir'
इसके साथ && nOffset+1 === str.length
जोड़ा गया isDirectory
:
- 'Testcase1' नाम की फ़ाइल में एक्सटेंशन है: 'jpeg' निर्देशिका में है: 'C: \ blabla \ blaeobuaeu'
- 'Testcase2' नाम की फ़ाइल में एक्सटेंशन है: 'png' निर्देशिका में है: '/ tmp / blabla'
- 'Testcase3' नाम की फ़ाइल में एक्सटेंशन है: 'htm' निर्देशिका में है: ''
- 'Testcase4' नाम की निर्देशिका में विस्तार है: '' निर्देशिका में है: 'C:'
- 'FileWithoutDots' नाम की निर्देशिका का विस्तार है: '' निर्देशिका में है: '/ dir.with.dots'
- निर्देशिका के नाम के साथ '' का विस्तार है: '' निर्देशिका में है: '/ dir.with.dots/another.dir'
वृषणों को देखते हुए आप यहां अन्य प्रस्तावित विधियों की तुलना में इस कार्य को काफी मजबूती से देख सकते हैं।
\\ के बारे में newbies के लिए ध्यान दें: \ एक एस्केप चरित्र है, उदाहरण के लिए \ n का अर्थ है एक newline और \ ta टैब। \ N लिखने के लिए संभव बनाने के लिए, आपको वास्तव में \\ n टाइप करना होगा।