Как насчет чего-то вроде этого.
Протестируйте живой пример: http://jsfiddle.net/6hBZU/1/
Предполагается, что строка всегда будет заканчиваться расширением:
function openFile(file) {
var extension = file.substr( (file.lastIndexOf('.') +1) );
switch(extension) {
case 'jpg':
case 'png':
case 'gif':
alert('was jpg png gif'); // There's was a typo in the example where
break; // the alert ended with pdf instead of gif.
case 'zip':
case 'rar':
alert('was zip rar');
break;
case 'pdf':
alert('was pdf');
break;
default:
alert('who knows');
}
};
openFile("somestring.png");
EDIT : Я по ошибке удалил часть строки в openFile ("somestring.png");
. Исправленный. Хотя было это в живом примере.
Чтобы получить расширение файла, я бы сделал следующее:
var ext = file.split('.').pop();
Вы можете использовать комбинацию substring и lastIndexOf
Sample
var fileName = "test.jpg";
var fileExtension = fileName.substring(fileName.lastIndexOf('.') + 1);
Попробуйте следующее:
var extension = fileString.substring(fileString.lastIndexOf('.') + 1);
Еще один способ записать это:
function getExtension(filename) {
return filename.split('.').pop().toLowerCase();
}
function openFile(file) {
switch(getExtension(file)) {
//if .jpg/.gif/.png do something
case 'jpg': case 'gif': case 'png':
/* handle */
break;
//if .zip/.rar do something else
case 'zip': case 'rar':
/* handle */
break;
//if .pdf do something else
case 'pdf':
/* handle */
break;
}
}
Поскольку расширение всегда будет строкой после точки в полном / частичном имени файла, просто используйте встроенную функцию разделения в js и проверьте полученное расширение на предмет того, что вы хотите. Если разделение возвращает только одну часть / ни одной части, она не содержит расширения.