Javascript 正则表达式从URL获取域,等等

Javascript 正则表达式从URL获取域,等等,javascript,regex,Javascript,Regex,网上有很多这样的帖子,但没有一篇像我想做的那样 假设我有一个字符串中的域: 我只想提取域名,而不提取其他内容(不是协议、子域或文件扩展名) 所以 https://stackoverflow.com/questions/8498592/extract-root-domain-name-from-string 我想得到: stackoverflow.com 有什么方法可以做到这一点吗?试试这个: var url = 'http://stackoverflow.com/questions/849

网上有很多这样的帖子,但没有一篇像我想做的那样

假设我有一个字符串中的域:

我只想提取域名,而不提取其他内容(不是协议、子域或文件扩展名)

所以

https://stackoverflow.com/questions/8498592/extract-root-domain-name-from-string
我想得到:

stackoverflow.com
有什么方法可以做到这一点吗?

试试这个:

var url = 'http://stackoverflow.com/questions/8498592/extract-root-domain-name-from-string';
var domain = url.match(/^https?:\/\/([^\/?#]+)/)[1];
alert(domain);
这将查找一个字符串,该字符串以
http
开头,可以选择
s
,后跟
://
,然后匹配所有非
/
的字符串。但是
.match()
在此处返回一个数组:

['http://stackoverflow.com', 'stackoverflow.com']

因此,我们使用
[1]
获取子匹配项。

您可以使用如下简单的正则表达式:

\/\/(.*?)\/
这里有一个工作示例:


希望能帮助你回答这个问题的第一条日志信息:正如你链接到的帖子所建议的那样,依靠可靠的URL解析功能,然后只保留你需要的部分通常是个好主意。就性能而言,差异可以忽略不计,您将获得可重用性和可读性。