JSFiddle - React, Tailwind, and code Playground

JavaScript

function extractHost(hostname) {
		var pattern = /^(([^\/:]+?\.)*)([^\.:]{1,})((\.[a-z0-9]{1,253})*)(:[0-9]{1,5})?$/;
    var host = hostname.replace(pattern, '$2$3$6');
    var subdomain = hostname.replace(host, '');

  return hostname + ' => sub: ' + subdomain + ' , host: ' + host;
}

hostnames = [
	'www.example.com',
  'www.example.com:8080',
  'www.example.co.uk',
  'test.example.com',
  'example.com',
  'www.wwf.ch',
  'wwf.ch',
  't.me'
];

for (var i = 0; i < hostnames.length; i++) {    
	$('body').append(extractHost(hostnames[i]) + '<br/>'); 
}