javascript只返回字符串的第一级域名

javascript只返回字符串的第一级域名,javascript,string,Javascript,String,在我的项目中,我有许多字符串,其中包含各种格式的域名和子域名 我需要一个JavaScript函数,它只返回字符串中的第一级域名,例如: string: https://www.example.com/test/intro.php return: www.example.com string: http://www.test.fr/ return: www.test.fr string: http://mysite.eu/portal/ return: mysite.eu [...] 是否

在我的项目中,我有许多字符串,其中包含各种格式的域名和子域名

我需要一个JavaScript函数,它只返回字符串中的第一级域名,例如:

string: https://www.example.com/test/intro.php
return: www.example.com

string: http://www.test.fr/
return: www.test.fr

string: http://mysite.eu/portal/
return: mysite.eu

[...]

是否存在在任何情况下都能实现这一目标的函数?

是的,您可以使用
document.location.hostname
document.location.host

编辑啊,我现在明白了

检查此链接:


没有内置函数,但您可以自己创建

此regexp匹配您发布的所有案例:

/:\/\/(.*?)\//

用法:

var str = 'http://mysite.eu/portal/';
var domain = str.match(/:\/\/(.*?)\//)[1];
console.log(domain); //"mysite.eu"
如果您不喜欢regexp(比如我:),可以尝试以下方法:

function getDomain (inputString) {
  var res = inputString.split("/");
  return res[2];
}

创建锚元素并使href成为字符串

var a  = document.createElement('a');
a.href = data;
从中获取主机名

a.hostname
同样,您也可以获取协议和其他属性

a.protocol; // => "http:"
a.host;     // => "example.com:5000"
a.hostname; // => "example.com"
a.port;     // => "5000"
a.pathname; // => "/pathname/"
a.hash;     // => "#value"
a.search;   // => "?q=test"
下面是回答您问题的函数

function getDomainFromURL(data) {
     var a = document.createElement('a');
     a.href = data;
     return a.hostname;
}

您可以使用一个简单的regexp来实现这一点。看看它是否在地址栏中显示url,没问题。但我猜这些是字符串。@PraveenJeganathan对不起,你是什么意思?@nl-x我的意思是
文档。位置
-包含有关文档URL的信息。虽然OP谈论的是
string
.Tnx,但我现在明白了,并改变了我的答案。我喜欢这个,它是开箱即用的,但它有多跨浏览器?没有太多的支持,但我不知道这有多过时,因为它在我的Chrome上运行良好。你需要提供一个完整的url字符串,相对url不起作用。它在ie中也很好地工作。刚刚在IE9中测试过。我已经用了一段时间了。精彩、简洁、全面的回答,谢谢!更新:我刚刚在ff控制台中遇到一个行为,如果
数据中没有
www
前缀(使用上面示例中的变量),那么
a.hostname
etc将不会返回所需的字符串,而是返回当前窗口的主机名。
a.protocol; // => "http:"
a.host;     // => "example.com:5000"
a.hostname; // => "example.com"
a.port;     // => "5000"
a.pathname; // => "/pathname/"
a.hash;     // => "#value"
a.search;   // => "?q=test"
function getDomainFromURL(data) {
     var a = document.createElement('a');
     a.href = data;
     return a.hostname;
}