2016-04-07 2 views
0

Я хотел бы извлечь расширение файла из URL-адреса. Например, http://www.url.com/index.html. Я хотел бы что-то вроде функции extension, где extension(http://www.url.com/index.html) return http. Задача тривиальна в случае URL-адреса, который я дал, но что, если у меня есть параметры запроса, то есть http://www.url.com/index.html?q=bar?Как извлечь расширение URL с помощью nodejs?

UPDATE:

Это то, что я получил до сих пор:

function extension(url) { 
    var components = url.split('/'); 
    var lastComponent = components[components.length-1]; 
    return lastComponent.split('?')[0].split('.')[1]; 
} 

Я have't проверял еще широко. Есть ли лучше?

+0

Вы могли бы быть в состоянии сделать это немного более энергично с [Regex] (https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions), но я не думаю, что в вашем решении что-то не так, кроме того факта, что в некоторых случаях имя файла может содержать несколько. Возможно, стоило бы получить последний элемент после расщепления на '.', а не на индекс 1. Это, в общем, nitpicking: D –

ответ

0

Это может быть сделано без введения var с, как:

var fileExtension = function(url) { 
    return url.split('.').pop().split(/\#|\?/)[0]; 
}