如何使用javascript从url字符串中提取url文件扩展名

Car*_*arl 15 javascript url file

如何使用javascript找到URL的文件扩展名?示例网址:

http://www.adobe.com/products/flashplayer/include/marquee/design.swf?width=792&height=294
Run Code Online (Sandbox Code Playgroud)

我只想要整个网址的'swf'.如果网址也采用以下格式,我需要它来查找扩展名

http://www.adobe.com/products/flashplayer/include/marquee/design.swf
Run Code Online (Sandbox Code Playgroud)

显然这个URL背后没有参数.

有人知道吗?

提前致谢

iCo*_*nor 17

这样的事可能吗?

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

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

console.log(extension, extension === 'jpg');
Run Code Online (Sandbox Code Playgroud)

您在控制台中看到的结果是.

jpg true
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因你有这样的网址,something.jpg?name=blah或者something.jpg#blah你可以做到

extension = extension.split(/\#|\?/g)[0];
Run Code Online (Sandbox Code Playgroud)

辍学

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

  • 怎么样`http :: //someurl.com/file.png?user_token = some.hash.with.dot`? (5认同)

T.T*_*dua 10

function get_url_extension( url ) {
    return url.split(/\#|\?/)[0].split('.').pop().trim();
}
Run Code Online (Sandbox Code Playgroud)

例:

get_url_extension('https://example.com/folder/file.jpg?param.eter#hash=12.345');
//output ------> jpg
Run Code Online (Sandbox Code Playgroud)


Ale*_* K. 9

对于扩展,您可以使用此功能:

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;
}
Run Code Online (Sandbox Code Playgroud)

或更短:

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

例子:

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")
Run Code Online (Sandbox Code Playgroud)

注意:文件扩展名.在开头提供了dot().所以如果result.charat(0) != "."没有扩展名.


Ada*_*dam 6

这就是答案:

var extension = path.match(/\.([^\./\?]+)($|\?)/)[1];
Run Code Online (Sandbox Code Playgroud)

  • 要处理像"... abcd.jpg#awesome"这样的情况,其中"#"在扩展名之后,请使用:var ext = path.match(/\.([^].\\?##] + )($ |\| \#)/)[1]?; (3认同)

OZZ*_*ZIE 5

url.split('?')[0].split('.').pop()
Run Code Online (Sandbox Code Playgroud)

通常 #hash 不是 url 的一部分,而是单独处理


ek_*_*_ny 1

    var doc = document.location.toString().substring(document.location.toString().lastIndexOf("/"))
    alert(doc.substring(doc.lastIndexOf(".")))
Run Code Online (Sandbox Code Playgroud)