Как вытащить расширение файла URL из строки URL, используя JavaScript - PullRequest
13 голосов
/ 09 августа 2011

Как мне найти расширение файла URL с помощью javascript?пример URL:

http://www.adobe.com/products/flashplayer/include/marquee/design.swf?width=792&height=294

Я просто хочу 'swf' всего URL.Мне нужно, чтобы найти расширение, если URL-адрес был также в следующем формате

http://www.adobe.com/products/flashplayer/include/marquee/design.swf

Очевидно, что этот URL не имеет параметров позади него.

Кто-нибудь знает?

Заранее спасибо

Ответы [ 9 ]

16 голосов
/ 01 января 2014

Что-то вроде этого может быть?

var fileName = 'http://localhost/assets/images/main.jpg';

var extension = fileName.split('.').pop(); 

console.log(extension, extension === 'jpg');

Результат, который вы видите в консоли:

jpg true

если по какой-то причине у вас есть такой URL-адрес something.jpg?name=blah или something.jpg#blah, тогда вы можете сделать

extension = extension.split(/\#|\?/g)[0];

падение

var fileExtension = function( url ) {
    return url.split('.').pop().split(/\#|\?/)[0];
}
9 голосов
/ 09 августа 2011

Для расширения вы можете использовать эту функцию:

function ext(url) {
    // Remove everything to the last slash in URL
    url = url.substr(1 + url.lastIndexOf("/"));

    // Break URL at ? and take first part (file name, extension)
    url = url.split('?')[0];

    // Sometimes URL doesn't have ? but #, so we should aslo do the same for #
    url = url.split('#')[0];

    // Now we have only extension
    return url;
}

или короче:

function ext(url) {
    return (url = url.substr(1 + url.lastIndexOf("/")).split('?')[0]).split('#')[0].substr(url.lastIndexOf("."))
}

Примеры:

ext("design.swf")
ext("/design.swf")
ext("http://www.adobe.com/products/flashplayer/include/marquee/design.swf")
ext("/marquee/design.swf?width=792&height=294")
ext("design.swf?f=aa.bb")
ext("../?design.swf?width=792&height=294&.XXX")
ext("http://www.example.com/some/page.html#fragment1")
ext("http://www.example.com/some/dynamic.php?foo=bar#fragment1")

Примечание: предоставляется расширение файлас точкой (.) в начале.Так что если result.charat(0) != "." нет расширения.

7 голосов
/ 12 декабря 2017
function get_url_extension( url ) {
    return url.split(/\#|\?/)[0].split('.').pop().trim();
}

пример:

get_url_extension('https://example.com/folder/file.jpg?param.eter#hash=12.345');
//output ------> jpg
6 голосов
/ 07 февраля 2016

Это ответ:

var extension = path.match(/\.([^\./\?]+)($|\?)/)[1];
3 голосов
/ 09 августа 2011

Взгляните на регулярные выражения .В частности, что-то вроде /([^.]+.[^?])\?/.

0 голосов
/ 14 февраля 2019
url.split('?')[0].split('.').pop()

обычно #hash не является частью URL, но обрабатывается отдельно

0 голосов
/ 03 марта 2017
var fileExtension = function( url ) {
    var length=url.split(?,1);
    return length
}
document.write("the url is :"+length);
0 голосов
/ 10 мая 2016
  // Gets file extension from URL, or return false if there's no extension
  function getExtension(url) {
      // Extension starts after the first dot after the last slash
      var extStart = url.indexOf('.',url.lastIndexOf('/')+1);
      if (extStart==-1) return false;
      var ext = url.substr(extStart+1),
          // end of extension must be one of: end-of-string or question-mark or hash-mark
          extEnd = ext.search(/$|[?#]/);
      return ext.substring (0,extEnd);
  }
0 голосов
/ 09 августа 2011
    var doc = document.location.toString().substring(document.location.toString().lastIndexOf("/"))
    alert(doc.substring(doc.lastIndexOf(".")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...