私はちょうどドメイン名(yahoo、google、stackoverflow)をjavascriptのドメインから取得したいと思います。どのように簡単にこれを取り出して、サブドメインと拡張子を簡単に取り除くことができますか?サブドメインと.com/.orgなどをJavascriptのドメインから削除するにはどうすればよいですか?
コメントを見る、可能であれば、どのドメインでも動作する必要があります。
私はちょうどドメイン名(yahoo、google、stackoverflow)をjavascriptのドメインから取得したいと思います。どのように簡単にこれを取り出して、サブドメインと拡張子を簡単に取り除くことができますか?サブドメインと.com/.orgなどをJavascriptのドメインから削除するにはどうすればよいですか?
コメントを見る、可能であれば、どのドメインでも動作する必要があります。
は、この機能を試してみてください:
"www.google.com".match(/\.?([^.]+)\.[^.]+.?$/)[1]
がほとんどですが、「google.com.br」(http://jsfiddle.net/dvHmJ/)のようなケースでは失敗します。ここでのより良い回答:http://stackoverflow.com/questions/8253136/how-to-get-domain-name-only-using-javascript/8253221#8253221 –
var domain = 'http://www.google.com/';
var parts = domain.toString().split('.'.toString());
parts[parts.length - 2];
ただ、MLD(ミッドレベルドメイン)をサポートするために、window.locationのオブジェクトを拡張how to get domain name from URL
を参照してください。
window.location.mld = function() {
return window.location.hostname.split('.').reverse()[1];
}();
このようにそれを使用します。 window.location.mld
あなたはwww.google.com
Huh。なぜこの関数を他の場所の代わりに場所オブジェクトに追加しますか? –
それはURLの一部なので、window.locationの残りのメソッドもありますので、私の意見ではそれは合っています。 –
URLプロトタイプオブジェクトの方が良いでしょうか? (このようなものがありますか?私のJavaScriptの知識は少し錆びています。) –
にしている場合、出力google
は私がこれを行うために必要な、私のユースケース
function stripSubDomainAndTLD (domain) {
return domain.replace(/^(?:[a-z0-9\-\.]+\.)??([a-z0-9\-]+)(?:\.com|\.net|\.org|\.biz|\.ws|\.in|\.me|\.co\.uk|\.co|\.org\.uk|\.ltd\.uk|\.plc\.uk|\.me\.uk|\.edu|\.mil|\.br\.com|\.cn\.com|\.eu\.com|\.hu\.com|\.no\.com|\.qc\.com|\.sa\.com|\.se\.com|\.se\.net|\.us\.com|\.uy\.com|\.ac|\.co\.ac|\.gv\.ac|\.or\.ac|\.ac\.ac|\.af|\.am|\.as|\.at|\.ac\.at|\.co\.at|\.gv\.at|\.or\.at|\.asn\.au|\.com\.au|\.edu\.au|\.org\.au|\.net\.au|\.id\.au|\.be|\.ac\.be|\.adm\.br|\.adv\.br|\.am\.br|\.arq\.br|\.art\.br|\.bio\.br|\.cng\.br|\.cnt\.br|\.com\.br|\.ecn\.br|\.eng\.br|\.esp\.br|\.etc\.br|\.eti\.br|\.fm\.br|\.fot\.br|\.fst\.br|\.g12\.br|\.gov\.br|\.ind\.br|\.inf\.br|\.jor\.br|\.lel\.br|\.med\.br|\.mil\.br|\.net\.br|\.nom\.br|\.ntr\.br|\.odo\.br|\.org\.br|\.ppg\.br|\.pro\.br|\.psc\.br|\.psi\.br|\.rec\.br|\.slg\.br|\.tmp\.br|\.tur\.br|\.tv\.br|\.vet\.br|\.zlg\.br|\.br|\.ab\.ca|\.bc\.ca|\.mb\.ca|\.nb\.ca|\.nf\.ca|\.ns\.ca|\.nt\.ca|\.on\.ca|\.pe\.ca|\.qc\.ca|\.sk\.ca|\.yk\.ca|\.ca|\.cc|\.ac\.cn|\.com\.cn|\.edu\.cn|\.gov\.cn|\.org\.cn|\.bj\.cn|\.sh\.cn|\.tj\.cn|\.cq\.cn|\.he\.cn|\.nm\.cn|\.ln\.cn|\.jl\.cn|\.hl\.cn|\.js\.cn|\.zj\.cn|\.ah\.cn|\.gd\.cn|\.gx\.cn|\.hi\.cn|\.sc\.cn|\.gz\.cn|\.yn\.cn|\.xz\.cn|\.sn\.cn|\.gs\.cn|\.qh\.cn|\.nx\.cn|\.xj\.cn|\.tw\.cn|\.hk\.cn|\.mo\.cn|\.cn|\.cx|\.cz|\.de|\.dk|\.fo|\.com\.ec|\.tm\.fr|\.com\.fr|\.asso\.fr|\.presse\.fr|\.fr|\.gf|\.gs|\.co\.il|\.net\.il|\.ac\.il|\.k12\.il|\.gov\.il|\.muni\.il|\.ac\.in|\.co\.in|\.org\.in|\.ernet\.in|\.gov\.in|\.net\.in|\.res\.in|\.is|\.it|\.ac\.jp|\.co\.jp|\.go\.jp|\.or\.jp|\.ne\.jp|\.ac\.kr|\.co\.kr|\.go\.kr|\.ne\.kr|\.nm\.kr|\.or\.kr|\.li|\.lt|\.lu|\.asso\.mc|\.tm\.mc|\.com\.mm|\.org\.mm|\.net\.mm|\.edu\.mm|\.gov\.mm|\.ms|\.nl|\.no|\.nu|\.pl|\.ro|\.org\.ro|\.store\.ro|\.tm\.ro|\.firm\.ro|\.www\.ro|\.arts\.ro|\.rec\.ro|\.info\.ro|\.nom\.ro|\.nt\.ro|\.se|\.si|\.com\.sg|\.org\.sg|\.net\.sg|\.gov\.sg|\.sk|\.st|\.tf|\.ac\.th|\.co\.th|\.go\.th|\.mi\.th|\.net\.th|\.or\.th|\.tm|\.to|\.com\.tr|\.edu\.tr|\.gov\.tr|\.k12\.tr|\.net\.tr|\.org\.tr|\.com\.tw|\.org\.tw|\.net\.tw|\.ac\.uk|\.uk\.com|\.uk\.net|\.gb\.com|\.gb\.net|\.vg|\.sh|\.kz|\.ch|\.info|\.ua|\.gov|\.name|\.pro|\.ie|\.hk|\.com\.hk|\.org\.hk|\.net\.hk|\.edu\.hk|\.us|\.tk|\.cd|\.by|\.ad|\.lv|\.eu\.lv|\.bz|\.es|\.jp|\.cl|\.ag|\.mobi|\.eu|\.co\.nz|\.org\.nz|\.net\.nz|\.maori\.nz|\.iwi\.nz|\.io|\.la|\.md|\.sc|\.sg|\.vc|\.tw|\.travel|\.my|\.se|\.tv|\.pt|\.com\.pt|\.edu\.pt|\.asia|\.fi|\.com\.ve|\.net\.ve|\.fi|\.org\.ve|\.web\.ve|\.info\.ve|\.co\.ve|\.tel|\.im|\.gr|\.ru|\.net\.ru|\.org\.ru|\.hr|\.com\.hr)$/, '$1');
}
私はちょうどすべてのサブドメインを削除したいと思いますが、残念ながらこれは10ではありません新しいTLDのいくつかは0%ですが、正常に動作し、いつでも正規表現に追加できます。
どのドメインおよびTLD拡張でも機能する必要があります。 www.test.comまたはtest.comまたはsomething.test.co.uk。 –
TLDが必要な場合はそれほど問題になりません。さまざまなccTLDすべてに対してルールのデータベースが必要ですが、その場合でも例外があります。 –