首頁  >  文章  >  web前端  >  JavaScript趣題:從URL提取域名

JavaScript趣題:從URL提取域名

黄舟
黄舟原創
2017-01-22 14:48:151365瀏覽

給定一個URL字串,如何解析它,並從中提取出網域?

如下圖:

domainName("http://github.com/carbonfive/raygun") == "github"   
domainName("http://www.zombie-bites.com") == "zombie-bites"  
domainName("https://www.cnet.com") == "cnet"

大家都知道,URL的第一部分是協議名,這個可以有很多種,比如http,https,甚至以後會新增更多的協議,因此如果把所有的協議名都拿過來匹配,可擴展性太差了。

但是,不管你是怎樣的協議,這一段是必不可少的——"://"。

而且往往,這段字串後面緊接著的就是域名,我們可以做字串截取。

下面的程式碼做了詳細說明:

function domainName(url){  
    var sign = "://";  
    var pos = url.indexOf(sign);  
    //如果以协议名开头  
    //如:http://github.com/  
    if(pos >= 0){  
        pos += sign.length;  
        //截取协议名以后的部分  
        //github.com/  
        url = url.slice(pos);  
    }  
    //以小数点作分割  
    var array = url.split(".");  
    //如果是以3W开头,返回第二部分  
    //如:www.github.com  
    if(array[0] === "www"){  
        return array[1];  
    }  
    //如果不是以3W开头,则返回第一部分  
    //如:github.com/  
    return array[0];  
}

這個方法只考慮了幾種通用情況,有些情況,比如說有子域名,沒有考慮。

以上就是JavaScript趣題:從URL擷取網域的內容,更多相關內容請追蹤PHP中文網(www.php.cn)!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn