Javascript 获取带后缀的域名(仅域)(Regex-PHP)

Javascript 获取带后缀的域名(仅域)(Regex-PHP),javascript,php,regex,Javascript,Php,Regex,获取带后缀的域名(仅域) 我需要PHP或JavaScript中的正则表达式来解析域 任何后缀(com、org、net、us、ar等)和任何协议(http、https、ftp等) 例如: array( , 'http://domainname.com' , 'http://domainname.com/whatever/you/get/the/idea' , 'http://www.domainname.com/whatever/you/get/the/idea' , 'http:

获取带后缀的域名(仅域)

我需要PHP或JavaScript中的正则表达式来解析域

任何后缀(com、org、net、us、ar等)和任何协议(http、https、ftp等)

例如:

array(
  , 'http://domainname.com'
  , 'http://domainname.com/whatever/you/get/the/idea'
  , 'http://www.domainname.com/whatever/you/get/the/idea'
  , 'http://www.domainname.com'
  , 'https://s1.s2.domainname.com/321.com/www.654.vom/'
  , 'https://s1.domainname.com'
  , 'https://s1.domainname.com/domain1.com/'
  , 'https://domain1.com.domainname.com'
  , 's1.s2.domainname.com/321.com/www.654.vom/'
  , 's1.domainname.com'
  , 's1.domainname.com/domain1.com/'
  , 'domain1.com.domainname.com'
);
结果: 所有结果都是domainname.com一种没有正则表达式的方式:

$urls = array('http://domainname.com',
              'http://domainname.com/whatever/you/get/the/idea',
              'http://www.domainname.com/whatever/you/get/the/idea',
              'http://www.domainname.com',
              'https://s1.s2.domainname.com/321.com/www.654.vom/',
              'https://s1.domainname.com',
              'https://s1.domainname.com/domain1.com/',
              'https://domain1.com.domainname.com');

$domains = array_map(function ($url) {
    $chunks = explode('.', parse_url($url,PHP_URL_HOST));
    $first_level_dn = array_pop($chunks);
    return array_pop($chunks) . '.' . $first_level_dn;
}, $urls);

print_r($domains);
JS,使用现代:

旧式正则表达式

   host = u.match(/^\w+:\/\/.*?(\w+\.\w+)(\/|$)/)[1]

可能重复的,可能重复的谢谢。我测试你的代码。它的作品,但我需要正则表达式获取域名。
   host = u.match(/^\w+:\/\/.*?(\w+\.\w+)(\/|$)/)[1]