看代码:
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.replace(/\.([a-zA-Z0-9]+)$/, "$1");
编辑:奇怪的是(或者可能不是)替换方法的第二个参数中的$1似乎不工作…对不起。
其他回答
在path模块中有一个标准库函数:
import path from 'path';
console.log(path.extname('abc.txt'));
输出:
. txt
所以,如果你只想要格式:
path.extname('abc.txt').slice(1) // 'txt'
如果没有扩展名,函数将返回一个空字符串:
path.extname('abc') // ''
如果使用Node,则path是内置的。如果你的目标是浏览器,那么Webpack将为你捆绑一个路径实现。如果你的目标浏览器没有Webpack,那么你可以手动包含path-browserify。
没有理由进行字符串分割或正则表达式。
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”)
总是返回扩展低cas,以便您可以检查它的字段更改 适用于:
file.JpEg
文件(无扩展名)
文件。(noextension)
还有一个使用ES6解构的简单方法:
Const path = 'hello.world.txt' const[扩展,…nameParts] = path.split('.').reverse(); console.log(扩展:,扩展);
简单的方法获得文件名甚至多个点在名称
var filename = "my.filehere.txt";
file_name = filename.replace('.'+filename.split('.').pop(),'');
console.log("Filename =>"+file_name);
输出:my.filehere
extension = filename.split('.').pop();
console.log("Extension =>"+extension);
输出:txt
试试这是一行代码