কোড দেখুন:
var file1 = "50.xsl";
var file2 = "30.doc";
getFileExtension(file1); //returns xsl
getFileExtension(file2); //returns doc
function getFileExtension(filename) {
/*TODO*/
}
কোড দেখুন:
var file1 = "50.xsl";
var file2 = "30.doc";
getFileExtension(file1); //returns xsl
getFileExtension(file2); //returns doc
function getFileExtension(filename) {
/*TODO*/
}
উত্তর:
নতুন সম্পাদনা: এই প্রশ্নটি প্রাথমিকভাবে পোস্ট হওয়ার পরে প্রচুর পরিমাণে পরিবর্তন হয়েছে - ওয়ালারারের সংশোধিত উত্তরের পাশাপাশি ভিজিওএন-এর দুর্দান্ত ভাঙ্গনের অনেকগুলি সত্যই আছে
সম্পাদনা করুন: কারণ এটি গ্রহণযোগ্য উত্তর; ওয়ালাসারের উত্তরটি অবশ্যই আরও ভাল:
return filename.split('.').pop();
আমার পুরানো উত্তর:
return /[^.]+$/.exec(filename);
এটা করা উচিত।
সম্পাদনা করুন: ফিলোর মন্তব্যের জবাবে এমন কিছু ব্যবহার করুন:
return (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename) : undefined;
return filename.substring(0,1) === '.' ? '' : filename.split('.').slice(1).pop() || '';
এটি .file
(ইউনিক্স লুকানো, আমি বিশ্বাস করি) ধরণের ফাইলেরও যত্ন নেয় । যদি আপনি এটি ওয়ান-লাইনার হিসাবে রাখতে চান তবে এটি আমার স্বাদে কিছুটা অগোছালো।
return filename.split('.').pop();
সহজবোধ্য রাখো :)
সম্পাদনা:
এটি আরও একটি নন-রেজেক্স সমাধান যা আমি বিশ্বাস করি যে আরও দক্ষ:
return filename.substring(filename.lastIndexOf('.')+1, filename.length) || filename;
কিছু কর্নার কেস রয়েছে যা নীচে ভিজিওএন এর উত্তর দ্বারা আরও ভালভাবে পরিচালনা করা হয়েছে , বিশেষত কোনও এক্সটেনশন ( .htaccess
ইত্যাদি অন্তর্ভুক্ত) ফাইলগুলি ।
এটি খুব পারফরম্যান্ট, এবং ""
বিন্দুর আগে কোনও বিন্দু বা স্ট্রিং নেই যখন পূর্ণ স্ট্রিংয়ের পরিবর্তে ফিরে আসার মাধ্যমে কোণার কেসগুলি তর্কযোগ্যভাবে আরও ভালভাবে পরিচালনা করে। এটি পড়ার পক্ষে শক্ত হলেও এটি একটি খুব ভাল কারুকৃত সমাধান। এটি আপনার সহায়তাকারীদের পছন্দ মতো করুন এবং কেবল এটি ব্যবহার করুন।
পুরানো সম্পাদনা:
একটি নিরাপদ বাস্তবায়ন যদি আপনি কোনও এক্সটেনশন ছাড়াই ফাইলগুলিতে চালাচ্ছেন বা কোনও এক্সটেনশন ছাড়াই লুকানো ফাইলগুলি (উপরে টমের উত্তরে ভিজিওন-এর মন্তব্য দেখুন) এই লাইনের সাথে কিছু হবে
var a = filename.split(".");
if( a.length === 1 || ( a[0] === "" && a.length === 2 ) ) {
return "";
}
return a.pop(); // feel free to tack .toLowerCase() here if you want
যদি a.length
এটি এক হয়, এটি কোনও এক্সটেনশন ছাড়াই একটি দৃশ্যমান ফাইল ie ফাইল
যদি a[0] === ""
এবং a.length === 2
এটি কোনও এক্সটেনশন ছাড়াই একটি লুকানো ফাইল ie .htaccess
আশা করি এটি কিছুটা জটিল জটিল সমস্যাগুলি সমাধান করতে সহায়তা করে। পারফরম্যান্সের ক্ষেত্রে, আমি বিশ্বাস করি যে এই সমাধানটি বেশিরভাগ ব্রাউজারে রেগেক্সের চেয়ে কিছুটা ধীর । তবে, সর্বাধিক সাধারণ উদ্দেশ্যে এই কোডটি নিখুঁতভাবে ব্যবহারযোগ্য হবে।
filename
আসলে কোনও এক্সটেনশন না থাকলে কী হয় ? এটি কি বেস ফাইলটি সহজেই ফিরিয়ে দেবে না, যা খুব খারাপ হবে?
নিম্নলিখিত সমাধানটি বাল্ক ক্রিয়াকলাপগুলিতে ব্যবহার করতে এবং অতিরিক্ত বাইটগুলি সংরক্ষণ করার জন্য দ্রুত এবং যথেষ্ট সংক্ষিপ্ত :
return fname.slice((fname.lastIndexOf(".") - 1 >>> 0) + 2);
এখানে অন্য এক-লাইন নন-রিজেক্সপ সর্বজনীন সমাধান:
return fname.slice((Math.max(0, fname.lastIndexOf(".")) || Infinity) + 1);
উভয়ই নামের সাথে সঠিকভাবে কাজ করে না (যেমন মাইফাইল ) বা .
ডট (যেমন। Htaccess ) দিয়ে শুরু করে :
"" --> ""
"name" --> ""
"name.txt" --> "txt"
".htpasswd" --> ""
"name.with.many.dots.myext" --> "myext"
আপনি যদি গতি সম্পর্কে চিন্তা করেন তবে আপনি বেঞ্চমার্কটি চালাতে পারেন এবং সরবরাহিত সমাধানগুলি দ্রুততম হয় তা পরীক্ষা করতে পারেন , যখন সংক্ষিপ্তটি অতি দ্রুততর হয়:
সংক্ষিপ্তটি কীভাবে কাজ করে:
String.lastIndexOf
পদ্ধতি "."
প্রদত্ত স্ট্রিংয়ের (অর্থাৎ fname
) স্ট্রিংয়ের (অর্থাৎ ) সর্বশেষ অবস্থানটি প্রদান করে । সাবস্ট্রিংটি পাওয়া না গেলে মেথড রিটার্ন দেয় -1
।-1
এবং 0
যথাক্রমে কোনও এক্সটেনশন (উদাহরণস্বরূপ "name"
) এবং বিন্দু (যেমন ".htaccess"
) দিয়ে শুরু হওয়া নামগুলিকে উল্লেখ করে ।>>>
) শূন্য সঙ্গে ব্যবহার করে রূপান্তর ঋণাত্মক সংখ্যা প্রভাবিত -1
করতে 4294967295
এবং -2
করতে 4294967294
, যা ফাইলের নাম প্রান্ত ক্ষেত্রেই অপরিবর্তিত (ক কৌতুক সাজানোর এখানে) অবশিষ্ট জন্য দরকারী।String.prototype.slice
বর্ণিত হিসাবে গণনা করা হয়েছিল এমন অবস্থান থেকে ফাইলের অংশটি বের করে। পজিশনের সংখ্যাটি স্ট্রিং পদ্ধতির দৈর্ঘ্যের চেয়ে বেশি হলে রিটার্ন দেয় ""
।আপনি যদি আরও সুস্পষ্ট সমাধান চান যা একই পথে কাজ করবে (পূর্ণ পথের অতিরিক্ত সমর্থন সহ) এছাড়াও, নিম্নলিখিত বর্ধিত সংস্করণটি দেখুন। এই দ্রবণটি পূর্ববর্তী ওয়ান-লাইনারের তুলনায় ধীর হবে তবে এটি বোঝা অনেক সহজ।
function getExtension(path) {
var basename = path.split(/[\\/]/).pop(), // extract file name from full path ...
// (supports `\\` and `/` separators)
pos = basename.lastIndexOf("."); // get last position of `.`
if (basename === "" || pos < 1) // if file name is empty or ...
return ""; // `.` not found (-1) or comes first (0)
return basename.slice(pos + 1); // extract extension ignoring `.`
}
console.log( getExtension("/path/to/file.ext") );
// >> "ext"
তিনটি রূপই ক্লায়েন্টের যে কোনও ওয়েব ব্রাউজারে কাজ করা উচিত এবং এটি সার্ভার সাইড নোডজেএস কোডেও ব্যবহার করা যেতে পারে।
function getFileExtension(filename)
{
var ext = /^.+\.([^.]+)$/.exec(filename);
return ext == null ? "" : ext[1];
}
দিয়ে পরীক্ষিত
"a.b" (=> "b")
"a" (=> "")
".hidden" (=> "")
"" (=> "")
null (=> "")
এছাড়াও
"a.b.c.d" (=> "d")
".a.b" (=> "b")
"a..b" (=> "b")
var parts = filename.split('.');
return parts[parts.length-1];
কোড
/**
* Extract file extension from URL.
* @param {String} url
* @returns {String} File extension or empty string if no extension is present.
*/
var getFileExtension = function (url) {
"use strict";
if (url === null) {
return "";
}
var index = url.lastIndexOf("/");
if (index !== -1) {
url = url.substring(index + 1); // Keep path without its segments
}
index = url.indexOf("?");
if (index !== -1) {
url = url.substring(0, index); // Remove query
}
index = url.indexOf("#");
if (index !== -1) {
url = url.substring(0, index); // Remove fragment
}
index = url.lastIndexOf(".");
return index !== -1
? url.substring(index + 1) // Only keep file extension
: ""; // No extension found
};
পরীক্ষা
লক্ষ্য করুন যে কোনও প্রশ্নের অনুপস্থিতিতে খণ্ডটি এখনও উপস্থিত থাকতে পারে।
"https://www.example.com:8080/segment1/segment2/page.html?foo=bar#fragment" --> "html"
"https://www.example.com:8080/segment1/segment2/page.html#fragment" --> "html"
"https://www.example.com:8080/segment1/segment2/.htaccess?foo=bar#fragment" --> "htaccess"
"https://www.example.com:8080/segment1/segment2/page?foo=bar#fragment" --> ""
"https://www.example.com:8080/segment1/segment2/?foo=bar#fragment" --> ""
"" --> ""
null --> ""
"a.b.c.d" --> "d"
".a.b" --> "b"
".a.b." --> ""
"a...b" --> "b"
"..." --> ""
JSLint
0 সতর্কতা।
দ্রুত এবং পাথ সহ সঠিকভাবে কাজ করে
(filename.match(/[^\\\/]\.([^.\\\/]+)$/) || [null]).pop()
কিছু প্রান্ত ক্ষেত্রে
/path/.htaccess => null
/dir.with.dot/file => null
বিভাজনের সাহায্যে সমাধানগুলি ধীর এবং শেষের সমাধানগুলি শেষ প্রান্তের সাথে পরিচালনা করে না edge
.exec()
। আপনার কোড হিসাবে ভাল হবে (filename.match(/[^\\/]\.([^\\/.]+)$/) || [null]).pop()
।
আমি এই ভাগ করতে চেয়েছিলাম।
fileName.slice(fileName.lastIndexOf('.'))
যদিও এর একটি অবক্ষয় রয়েছে যে কোনও এক্সটেনশন ছাড়াই থাকা ফাইলগুলি শেষ স্ট্রিংটি ফিরে আসবে। তবে আপনি যদি এটি করেন তবে এটি প্রতিটি জিনিস ঠিক করবে:
function getExtention(fileName){
var i = fileName.lastIndexOf('.');
if(i === -1 ) return false;
return fileName.slice(i)
}
slice
পদ্ধতিটি স্ট্রিংয়ের পরিবর্তে অ্যারেগুলিকে বোঝায়। স্ট্রিং substr
বা substring
কাজ করবে জন্য।
String.prototype.slice
এবং Array.prototype.slice
এটি উভয়ই কাজ পদ্ধতিতে ধরণের
আমি নিশ্চিত যে ভবিষ্যতে কেউ আমার কোডকে ছোট করে এবং / অথবা অনুকূলিত করতে পারে and তবে এই মুহুর্তে আমি 200% আত্মবিশ্বাসী যে আমার কোড প্রতিটি অনন্য পরিস্থিতিতে (যেমন কেবলমাত্র ফাইলের নাম , আপেক্ষিক , মূল-আপেক্ষিক , এবং পরম ইউআরএল, খণ্ডিত #
ট্যাগ সহ কোয়েরি ?
স্ট্রিং সহ, এবং যা কিছু অন্যথায় আপনি এটিকে নিক্ষেপ করার সিদ্ধান্ত নিতে পারেন), নির্দ্বিধায় এবং পিন-পয়েন্ট যথার্থতার সাথে।
প্রমাণের জন্য, দেখুন: https://projects.jamesandersonjr.com/web/js_projects/get_file_extension_test.php
এখানে জেএসফিডাল: https://jsfiddle.net/JamesAndersonJr/ffcdd5z3/
অতিরিক্ত আত্মবিশ্বাসী হতে হবে না বা নিজের শিংগা ফুঁকবে না, তবে আমি এই কাজের জন্য কোনও কোডের ব্লক দেখিনি ( বিভিন্ন ইনপুট আর্গুমেন্টের ব্যাটারির মধ্যে 'সঠিক' ফাইল এক্সটেনশনটি সন্ধান করা function
) যা এটি কাজ করে।
দ্রষ্টব্য: ডিজাইন অনুসারে যদি প্রদত্ত ইনপুট স্ট্রিংয়ের জন্য কোনও ফাইল এক্সটেনশন উপস্থিত না থাকে তবে এটি কেবল একটি ফাঁকা স্ট্রিং দেয় ""
, ত্রুটি বা ত্রুটি বার্তা নয়।
এটি দুটি যুক্তি লাগে:
স্ট্রিং: fileNameOrURL (স্ব-ব্যাখ্যামূলক)
বুলিয়ান: শো ইউনিক্সডটফাইলস (বিন্দু দিয়ে শুরু হওয়া ফাইলগুলি প্রদর্শিত হবে কিনা "।")
নোট (2): আপনি আমার কোড মত, লাইব্রেরির, এবং / অথবা রেপো আসুন আপনার JS এটি যোগ করতে, কারণ আমি এটা উপসংহার উপর কঠোর পরিশ্রম নিশ্চিত করা, এবং এটি নষ্ট করতে যেতে একটি লজ্জা হবে না। সুতরাং, আরও অ্যাডো না করে, এটি এখানে:
function getFileExtension(fileNameOrURL, showUnixDotFiles)
{
/* First, let's declare some preliminary variables we'll need later on. */
var fileName;
var fileExt;
/* Now we'll create a hidden anchor ('a') element (Note: No need to append this element to the document). */
var hiddenLink = document.createElement('a');
/* Just for fun, we'll add a CSS attribute of [ style.display = "none" ]. Remember: You can never be too sure! */
hiddenLink.style.display = "none";
/* Set the 'href' attribute of the hidden link we just created, to the 'fileNameOrURL' argument received by this function. */
hiddenLink.setAttribute('href', fileNameOrURL);
/* Now, let's take advantage of the browser's built-in parser, to remove elements from the original 'fileNameOrURL' argument received by this function, without actually modifying our newly created hidden 'anchor' element.*/
fileNameOrURL = fileNameOrURL.replace(hiddenLink.protocol, ""); /* First, let's strip out the protocol, if there is one. */
fileNameOrURL = fileNameOrURL.replace(hiddenLink.hostname, ""); /* Now, we'll strip out the host-name (i.e. domain-name) if there is one. */
fileNameOrURL = fileNameOrURL.replace(":" + hiddenLink.port, ""); /* Now finally, we'll strip out the port number, if there is one (Kinda overkill though ;-)). */
/* Now, we're ready to finish processing the 'fileNameOrURL' variable by removing unnecessary parts, to isolate the file name. */
/* Operations for working with [relative, root-relative, and absolute] URL's ONLY [BEGIN] */
/* Break the possible URL at the [ '?' ] and take first part, to shave of the entire query string ( everything after the '?'), if it exist. */
fileNameOrURL = fileNameOrURL.split('?')[0];
/* Sometimes URL's don't have query's, but DO have a fragment [ # ](i.e 'reference anchor'), so we should also do the same for the fragment tag [ # ]. */
fileNameOrURL = fileNameOrURL.split('#')[0];
/* Now that we have just the URL 'ALONE', Let's remove everything to the last slash in URL, to isolate the file name. */
fileNameOrURL = fileNameOrURL.substr(1 + fileNameOrURL.lastIndexOf("/"));
/* Operations for working with [relative, root-relative, and absolute] URL's ONLY [END] */
/* Now, 'fileNameOrURL' should just be 'fileName' */
fileName = fileNameOrURL;
/* Now, we check if we should show UNIX dot-files, or not. This should be either 'true' or 'false'. */
if ( showUnixDotFiles == false )
{
/* If not ('false'), we should check if the filename starts with a period (indicating it's a UNIX dot-file). */
if ( fileName.startsWith(".") )
{
/* If so, we return a blank string to the function caller. Our job here, is done! */
return "";
};
};
/* Now, let's get everything after the period in the filename (i.e. the correct 'file extension'). */
fileExt = fileName.substr(1 + fileName.lastIndexOf("."));
/* Now that we've discovered the correct file extension, let's return it to the function caller. */
return fileExt;
};
উপভোগ করুন! আপনি বেশ স্বাগতম !:
// 获取文件后缀名
function getFileExtension(file) {
var regexp = /\.([0-9a-z]+)(?:[\?#]|$)/i;
var extension = file.match(regexp);
return extension && extension[1];
}
console.log(getFileExtension("https://www.example.com:8080/path/name/foo"));
console.log(getFileExtension("https://www.example.com:8080/path/name/foo.BAR"));
console.log(getFileExtension("https://www.example.com:8080/path/name/.quz/foo.bar?key=value#fragment"));
console.log(getFileExtension("https://www.example.com:8080/path/name/.quz.bar?key=value#fragment"));
আপনি যদি ওয়েব ইউআরএল নিয়ে কাজ করে থাকেন তবে আপনি এটি ব্যবহার করতে পারেন:
function getExt(filepath){
return filepath.split("?")[0].split("#")[0].split('.').pop();
}
getExt("../js/logic.v2.min.js") // js
getExt("http://example.net/site/page.php?id=16548") // php
getExt("http://example.net/site/page.html#welcome.to.me") // html
getExt("c:\\logs\\yesterday.log"); // log
এটা চেষ্টা কর:
function getFileExtension(filename) {
var fileinput = document.getElementById(filename);
if (!fileinput)
return "";
var filename = fileinput.value;
if (filename.length == 0)
return "";
var dot = filename.lastIndexOf(".");
if (dot == -1)
return "";
var extension = filename.substr(dot, filename.length);
return extension;
}
return filename.replace(/\.([a-zA-Z0-9]+)$/, "$1");
সম্পাদনা: আশ্চর্যরূপে (বা এটি সম্ভবত এটি নয়) $1
প্রতিস্থাপন পদ্ধতির দ্বিতীয় যুক্তিতে কাজ করা মনে হয় না ... দুঃখিত।
বেশিরভাগ অ্যাপ্লিকেশনগুলির জন্য, একটি সাধারণ স্ক্রিপ্ট যেমন
return /[^.]+$/.exec(filename);
ঠিক কাজ করবে (যেমন টম সরবরাহ করেছেন) provided তবে এটি বোকা প্রমাণ নয়। নিম্নলিখিত ফাইলের নাম সরবরাহ করা হলে এটি কাজ করে না:
image.jpg?foo=bar
এটি কিছুটা ওভারকিল হতে পারে তবে আমি অনাকাঙ্ক্ষিত ফাইল নামগুলির কারণে ব্যর্থতা এড়াতে এই জাতীয় url যেমন পার্সার ব্যবহার করার পরামর্শ দেব ।
নির্দিষ্ট ফাংশনটি ব্যবহার করে আপনি ফাইলের নামটি এইভাবে পেতে পারেন:
var trueFileName = parse_url('image.jpg?foo=bar').file;
এটি url vars ছাড়াই "image.jpg" আউটপুট দেবে। তারপরে আপনি ফাইল এক্সটেনশন দখল করতে মুক্ত হন free
function func() {
var val = document.frm.filename.value;
var arr = val.split(".");
alert(arr[arr.length - 1]);
var arr1 = val.split("\\");
alert(arr1[arr1.length - 2]);
if (arr[1] == "gif" || arr[1] == "bmp" || arr[1] == "jpeg") {
alert("this is an image file ");
} else {
alert("this is not an image file");
}
}
function extension(fname) {
var pos = fname.lastIndexOf(".");
var strlen = fname.length;
if (pos != -1 && strlen != pos + 1) {
var ext = fname.split(".");
var len = ext.length;
var extension = ext[len - 1].toLowerCase();
} else {
extension = "No extension found";
}
return extension;
}
// ব্যবহার
এক্সটেনশন ( 'file.jpeg')
সর্বদা এক্সটেনশানটি কম কাস প্রদান করে যাতে আপনি এটি ফিল্ড চেঞ্জের জন্য এটি পরীক্ষা করতে পারেন:
file.JpEg
ফাইল (কোনও এক্সটেনশন নেই)
ফাইল। (Noextension)
আপনি যদি কোনও নির্দিষ্ট এক্সটেনশান সন্ধান করছেন এবং এর দৈর্ঘ্য জানেন, আপনি সাবস্ট্রাস্ট ব্যবহার করতে পারেন :
var file1 = "50.xsl";
if (file1.substr(-4) == '.xsl') {
// do something
}
জাভাস্ক্রিপ্ট রেফারেন্স: https://developer.mozilla.org/en-US/docs/Web/ জাভা স্ক্রিপ্ট / রেফারেন্স / গ্লোবাল_অবজেক্টস / স্ট্রিং/ সুবস্ট্র
আমি পার্টিতে অনেক চাঁদ নিয়েছি তবে সরলতার জন্য আমি এই জাতীয় কিছু ব্যবহার করি
var fileName = "I.Am.FileName.docx";
var nameLen = fileName.length;
var lastDotPos = fileName.lastIndexOf(".");
var fileNameSub = false;
if(lastDotPos === -1)
{
fileNameSub = false;
}
else
{
//Remove +1 if you want the "." left too
fileNameSub = fileName.substr(lastDotPos + 1, nameLen);
}
document.getElementById("showInMe").innerHTML = fileNameSub;
<div id="showInMe"></div>
path
মডিউলে এটির জন্য একটি স্ট্যান্ডার্ড লাইব্রেরি ফাংশন রয়েছে :
import path from 'path';
console.log(path.extname('abc.txt'));
আউটপুট:
.txt
সুতরাং, আপনি যদি কেবল ফর্ম্যাটটি চান:
path.extname('abc.txt').slice(1) // 'txt'
যদি কোনও এক্সটেনশন না থাকে তবে ফাংশনটি একটি খালি স্ট্রিং ফিরিয়ে দেবে:
path.extname('abc') // ''
আপনি যদি নোড ব্যবহার করেন তবে path
অন্তর্নির্মিত। আপনি যদি ব্রাউজারটিকে লক্ষ্য করে নিচ্ছেন তবে ওয়েবপ্যাক path
আপনার জন্য একটি বাস্তবায়ন বান্ডিল করবে । আপনি যদি ওয়েবপ্যাক ছাড়াই ব্রাউজারটিকে লক্ষ্য করে রাখছেন তবে আপনি অন্তর্ভুক্ত করতে পারেন নিজেই প্যাথ- ।
স্ট্রিং বিভক্তকরণ বা রেজেক্স করার কোনও কারণ নেই।
"ওয়ান মাছ ধরার নৌকা" ব্যবহার ফাইলের নাম এবং এক্সটেনশন পেতে reduce
এবং অ্যারে ডেসট্রাকচারিং :
var str = "filename.with_dot.png";
var [filename, extension] = str.split('.').reduce((acc, val, i, arr) => (i == arr.length - 1) ? [acc[0].substring(1), val] : [[acc[0], val].join('.')], [])
console.log({filename, extension});
আরও ভাল ইন্ডেন্টেশন সহ:
var str = "filename.with_dot.png";
var [filename, extension] = str.split('.')
.reduce((acc, val, i, arr) => (i == arr.length - 1)
? [acc[0].substring(1), val]
: [[acc[0], val].join('.')], [])
console.log({filename, extension});
// {
// "filename": "filename.with_dot",
// "extension": "png"
// }
একটি ওয়ান লাইন সমাধান যা ক্যোয়ারী প্যারাম এবং ইউআরএল-এর কোনও অক্ষরের জন্যও অ্যাকাউন্টে থাকবে।
string.match(/(.*)\??/i).shift().replace(/\?.*/, '').split('.').pop()
// Example
// some.url.com/with.in/&ot.s/files/file.jpg?spec=1&.ext=jpg
// jpg
page.html#fragment
) নয়, এটি ফাইলের প্রসারণ এবং খণ্ডটি ফিরিয়ে দেবে।
function extension(filename) {
var r = /.+\.(.+)$/.exec(filename);
return r ? r[1] : null;
}
/* tests */
test('cat.gif', 'gif');
test('main.c', 'c');
test('file.with.multiple.dots.zip', 'zip');
test('.htaccess', null);
test('noextension.', null);
test('noextension', null);
test('', null);
// test utility function
function test(input, expect) {
var result = extension(input);
if (result === expect)
console.log(result, input);
else
console.error(result, input);
}
function extension(filename) {
var r = /.+\.(.+)$/.exec(filename);
return r ? r[1] : null;
}
কিছু ফাইলের কোনও এক্সটেনশন থাকতে পারে তা ভুলে যাবেন না:
var parts = filename.split('.');
return (parts.length > 1) ? parts.pop() : '';
fetchFileExtention(fileName) {
return fileName.slice((fileName.lastIndexOf(".") - 1 >>> 0) + 2);
}