网上有很多这样的帖子,但似乎没有一个能实现我想要做的事情。
假设我在字符串中有一个域:
Extract hostname name from string
我想提取域名而不是其他内容(不是协议(protocol)、子域或文件扩展名)。
所以对于
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]
来获取子匹配。
关于javascript - 正则表达式从 URL 获取域名,等等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900060/