从字符串URL中获取域名和页面名称

17

目前我遇到了一些关于操作URL的问题。

技术上,我想要从一个页面中获取域名和页面名称。

例如:

www.myWebSite.com => domain : myWebSite
http://myWebSite.com => domain : myWebSite
myWebSite.com/xxx.hmtl => domain : myWebSite page : xxx
6个回答

18
window.location.hostname; //Domain name

$("title").text(); //Page name

编辑:

var loc = window.location;

var filename = loc.pathname.split("/");
filename = filename[pathname.length-1];

alert("Domain: "+loc.hostname);
alert("Filename: "+filename);

15

尝试使用 url.match(/:\/\/(.[^/]+)/)[1]

例子:

var r = /:\/\/(.[^/]+)/;
"https://dev59.com/kG435IYBdhLWcg3wkA5e".match(r)[1] 
=> stackoverflow.com

".march" 应该是 ".match"。 - Parker

5
使用 window.location.hostnamewindow.location.host。请参考位置引用

1
我希望这可以帮助你:

function breakDownURL(url) {
    var domain = "",
        page = "";
    //remove "http://"
    if (url.indexOf("http://") == 0) {
        url = url.substr(7);
    }
    //remove "www."
    if (url.indexOf("www.") == 0) {
        url = url.substr(4);
    }
    domain = url.split('/')[0].split('.')[0]
    if (url.split('/').length > 1) {
        page = url.split('/')[1].split('.')[0];
    }
    document.write("domain : " + domain + 
      (page == "" ? "" : " page : " + page) + page + "<br/>");
}

breakDownURL("www.myWebSite.com"); // domain : myWebSite
breakDownURL("http://myWebSite.com"); // domain : myWebSite
breakDownURL("myWebSite.com/xxx.html"); // domain : myWebSite page : xxx

0
var url = window.location.href;  //www.myWebSite.com/myWebSite
var arr = url.split("/");
var page = arr[arr.length-1];
var domain = window.location.host;
alert(domain);                  //www.myWebSite.com
var n = page.includes("?");     // if www.myWebSite.com/myWebSite?parameter
if(n)
{
var page_arr = page.split("?");
var page = page_arr[0];        //myWebSite
}
alert(page);                   //myWebSite

0
你可以编写类似下面的函数:
function getHostnameFromURI(url) {
    // Check slashes in URL
    if (url.indexOf('?') == -1 && !url.endsWith('/') || url.indexOf('#') == -1 && !url.endsWith('/')) {
        url += '/';
    }
    
    let start = url.indexOf('://')+3;
    let end = url.indexOf('/', start);

    let domain = url.slice(start, end);
    
    // Remove port specification from the URL
    if (domain.indexOf(':') != -1) {
        domain = domain.slice(0, domain.indexOf(':'));
    }

    return domain;
}

它可以正确地处理localhost、.co.uk等域名。

https://stackoverflow.com/opensearch.xml --> stackoverflow.com

https://github.com/arichr --> github.com

信息:请检查您的URL是否正确,例如https://example.com?a=a将返回example.com?a=a


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接