split + popで拡張子を取り出し、includes()で判定
画像クイズで使ったコードです。
ファイル名の入った文字列をピリオド区切りで配列に分割して、popで最後の要素=拡張子を取り出します。
判定用の拡張子が入った配列を用意しておき、includes()で取り出した拡張子と比較します。
function isPictureFile(filename) {
const pictureExtensions = ["jpg", "JPG", "jpeg", "jpeg", "png", "PNG"];
const ext = filename.split(".").pop();
return pictureExtensions.includes(ext);
}
console.log(isPictureFile("test.jpg"));
true
console.log(isPictureFile("test.PNG"));
true
console.log(isPictureFile("test.txt"));
false
console.log(isPictureFile("test"));
false
拡張子を除去する
ついでにファイル名から拡張子を除去するコードもメモっておきます。
function removeExtension(filename) {
const index = filename.lastIndexOf(".");
if (lastDotIndex === -1) {
return filename;
}
else {
return filename.substr(0, lastDotPosition);
}
}