javascripturlsubdomainurl-parsing

Get second level domain name from URL


Is there a way to get top level domain name from the url

for e.g., "https://images.google.com/blah" => "google"

I found this:

var domain = new URL(pageUrl).hostname; 

but it gives me "images.google.com" instead of just google.

Unit tests I have are:

https://images.google.com   => google
https://www.google.com/blah => google
https://www.google.co.uk/blah => google
https://www.images.google.com/blah => google

Solution

  • You could do this:

    location.hostname.split('.').pop()
    

    EDIT

    Saw the change to your question, you would need a list of all TLDs to match against and remove from the hostname, then you could use split('.').pop()

    // small example list
    var re = new RegExp('\.+(co.uk|me|com|us)')
    var secondLevelDomain = 'https://www.google.co.uk'.replace(re, '').split('.').pop()