正则表达式从URL获取域名和东西

时间:2014-07-23 00:38:02

标签: javascript regex

网上有很多这样的帖子,但是他们似乎没有做我想做的事情。

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

Extract hostname name from string

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

所以

https://stackoverflow.com/questions/8498592/extract-root-domain-name-from-string

我想得到:

stackoverflow.com

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:2)

试试这个:

var url = 'http://stackoverflow.com/questions/8498592/extract-root-domain-name-from-string';
var domain = url.match(/^https?:\/\/([^\/?#]+)/)[1];
alert(domain);

这会查找以https开头的字符串,后跟://,然后匹配不是/的所有内容。但是.match()在这里返回一个数组:

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

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

答案 1 :(得分:0)

您可以使用这样的简单正则表达式:

\/\/(.*?)\/

这里有一个有效的例子:

http://regex101.com/r/iP0uX7/1

希望能提供帮助