2017-01-12 4 views
1

拡張子を付けずにjavascriptで特定のURLからルートドメイン名を取得するにはどうすればよいですか?拡張子なしのルートドメイン名を取得する - Javascript

例:

rootDomain("https://www.etsy.com/market/tumblr_clothing") - >etsy

rootDomain("https://petitions.whitehouse.gov/") - >whitehouse

rootDomain("facebook.com") - >facebook

rootDomain("google.ca") - >google

私はできトンでしたo不完全な解決策を見つける:How to get domain name only using javascript?およびExtract hostname name from string

主な問題は、拡張機能またはサブドメインなしでソリューションを作成することができないことです。

どのようにこれに取り組むための最良の方法はありますか?

+0

@AndrewLi私はhttp://stackoverflow.com/questions/8253136/how-to-get-domain-name-only-using-javascriptを試しましたが、私の例は失敗しています。私は正規表現でより良くなる必要があると思います。 –

+0

@AndrewLi正規表現はこれを行うことができますか?私はあなたが正規表現でこれを行うことはできないと信じています。なぜなら、接尾辞にいくつのブロックがあるか分からないからです。 –

答えて

0
function rootDomain(url) { 
    var rightPeriodIndex; 
    for (var i = url.length - 1; i >= 0; i--) { 
     if(url[i] == '.') { 
      //console.log("rightPeriodIndex", i); 
      rightPeriodIndex = i; 
      var noExtension = url.substr(0,i); 
      console.log("this is noExtension", noExtension); 
      break; 
     } 
    } 
    var result = noExtension.substring(noExtension.lastIndexOf(".") + 1); 
    return result; 
} 

console.log(rootDomain("facebook.com")); 
console.log(rootDomain("https://www.etsy.com/market/tumblr_clothing")); 
console.log(rootDomain("https://petitions.whitehouse.gov/")); 
console.log(rootDomain("google.ca")); 

私はちょうど、繰り返し、javascriptを使用して部分文字列の解析とストリッピングを行うことになりました。

関連する問題