ホームページ  >  記事  >  ウェブフロントエンド  >  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 など、さまざまなタイプがあり、将来的にはさらに多くのプロトコルが追加される予定です。すべてのプロトコル名は Take it and match it です。拡張性が低すぎます。

ただし、どのような種類の契約を結ぶ場合でも、この段落「://」は必須です。

そして多くの場合、この文字列の後にはドメイン名が続き、その文字列をインターセプトできます。

次のコードで詳しく説明します:

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];  
}

このメソッドは、いくつかの一般的な状況のみを考慮します。サブドメイン名などの一部の状況は考慮されません。

上記は、URL からドメイン名のコンテンツを抽出するという興味深い JavaScript の質問です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。