我正在尝试从文件名中获取扩展名。文件名可以包含特殊字符,“#,@,.,_,(),..etc) 例如:
var file1 = "fake.der"
var file2 = "fake.1.der"
var file3 = "fake_test.3.der"
现在 在上面的例子中,我只想从每个文件名中提取扩展名“der”。 我试过:
file1.split(".")[1] //works fine
file2.split(".")[1] // gives me 1 -incorrect but file2.split(".")[2] gives correct result
file3.split(".")[1] //gives 3-incorrect.
由于文件名可能不同,我不想通过将其更改为 .split(".")[ 来使其成为静态的
用于其他文件名等..
我怎样才能确保无论文件名中有多少个点,我总是只能将扩展名作为 o/p,有没有更好的方法?
谢谢!.split(".")[1]
2]
最佳答案
使用正则表达式匹配一个点,后跟非点字符,后跟字符串结尾:
function getExt(str) {
const match = str.match(/\.([^.]+)$/);
if (match) {
return match[1];
} else {
return 'Not found';
}
}
var file1 = "fake.der";
var file2 = "fake.1.der";
var file3 = "fake_test.3.der";
var file4 = "foobar";
[file1, file2, file3, file4].forEach(str => console.log(getExt(str)));
请注意,您无法始终确保输入字符串包含格式正确的文件扩展名,因此请确保处理这些意外情况,就像上面所做的那样。
关于javascript - 如何从文件名中提取具有特殊字符的 ext-javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54119785/