jQuery найти расширение файла (из строки)

29
задан SoulieBaby 15 June 2010 в 03:17
поделиться

6 ответов

Как насчет чего-то вроде этого.

Протестируйте живой пример: 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"); . Исправленный. Хотя было это в живом примере.

79
ответ дан 28 November 2019 в 00:32
поделиться

Чтобы получить расширение файла, я бы сделал следующее:

var ext = file.split('.').pop();
71
ответ дан 28 November 2019 в 00:32
поделиться

Вы можете использовать комбинацию substring и lastIndexOf

Sample

var fileName = "test.jpg";
var fileExtension = fileName.substring(fileName.lastIndexOf('.') + 1); 
9
ответ дан 28 November 2019 в 00:32
поделиться

Попробуйте следующее:

var extension = fileString.substring(fileString.lastIndexOf('.') + 1);
1
ответ дан 28 November 2019 в 00:32
поделиться

Еще один способ записать это:

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;
    }
}
13
ответ дан 28 November 2019 в 00:32
поделиться

Поскольку расширение всегда будет строкой после точки в полном / частичном имени файла, просто используйте встроенную функцию разделения в js и проверьте полученное расширение на предмет того, что вы хотите. Если разделение возвращает только одну часть / ни одной части, она не содержит расширения.

1
ответ дан 28 November 2019 в 00:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: