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/>');
}