文字列からホスト名を抽出する 質問する

文字列からホスト名を抽出する 質問する

テキスト文字列から URL 全体ではなく、URL のルートのみを一致させたいと思います。次の場合:

http://www.youtube.com/watch?v=ClkQA2Lb_iE
http://youtu.be/ClkQA2Lb_iE
http://www.example.com/12xy45
http://example.com/random

www.example.com最後の 2 つのインスタンスをorドメインに解決したいと思いますexample.com

正規表現は遅いと聞きました。これは、このページでの 2 番目の正規表現になりますので、正規表現を使わずに実行する方法があればお知らせください。

このソリューションの JS/jQuery バージョンを探しています。

ベストアンサー1

正規表現を使わない巧妙なトリック:

var tmp        = document.createElement ('a');
;   tmp.href   = "http://www.example.com/12xy45";

// tmp.hostname will now contain 'www.example.com'
// tmp.host will now contain hostname and port 'www.example.com:80'

上記を以下のような関数でラップすると、URI からドメイン部分を取得する優れた方法が得られます。

function url_domain(data) {
  var    a      = document.createElement('a');
         a.href = data;
  return a.hostname;
}

おすすめ記事