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 サイト (m.sbmmt.com) に注目してください。