看代码:
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*/
}
当前回答
var filetypeArray = (file.type).split("/");
var filetype = filetypeArray[1];
在我看来,这是一个更好的方法。
其他回答
// 获取文件后缀名 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"));
我刚刚意识到,对p4bl0的回答发表评论是不够的,尽管Tom的回答显然解决了问题:
return filename.replace(/^.*?\.([a-zA-Z0-9]+)$/, "$1");
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 文件名 = “I.Am.文件名.docx”; var nameLen = fileName.length; var lastDotPos = fileName.lastIndexOf(“.”); var 文件名子 = 假; if(lastDotPos === -1) { 文件名子 = 假; } 还 { 如果希望“.”也保留,请删除 +1 fileNameSub = fileName.substr(lastDotPos + 1, nameLen); } document.getElementById(“showInMe”).innerHTML = fileNameSub; <div id=“showInMe”></div>
我知道这是一个老问题,但我写了这个函数的测试提取文件扩展名,她可用的NPM, Yarn, Bit。 也许它会帮助别人。 https://bit.dev/joshk/jotils/get-file-extension
function getFileExtension(path: string): string {
var regexp = /\.([0-9a-z]+)(?:[\?#]|$)/i
var extension = path.match(regexp)
return extension && extension[1]
}
您可以在这里看到我编写的测试。