テキスト文字列から 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;
}