如何从JavaScript中的字符串中提取基本URL?

2022-08-30 01:46:41

我试图找到一种相对简单可靠的方法,使用JavaScript(或jQuery)从字符串变量中提取基本URL。

例如,给定如下内容:

http://www.sitename.com/article/2009/09/14/this-is-an-article/

我想得到:

http://www.sitename.com/

正则表达式是最好的选择吗?如果是这样,我可以使用什么语句将从给定字符串中提取的基本URL分配给新变量?

我对此进行了一些搜索,但是我在JavaScript世界中发现的所有内容似乎都围绕着使用location.host或类似方法从实际文档URL中收集此信息。


答案 1

编辑:有些人抱怨它没有考虑到协议。所以我决定升级代码,因为它被标记为答案。对于那些喜欢一行代码的人...好吧,很抱歉,这就是为什么我们使用代码最小化器,代码应该是人类可读的,这种方式更好......在我看来。

var pathArray = "https://somedomain.com".split( '/' );
var protocol = pathArray[0];
var host = pathArray[2];
var url = protocol + '//' + host;

或者从下面使用Davids解决方案


答案 2

基于WebKit的浏览器,Firefox版本21和当前版本的Internet Explorer(IE 10和11)实现了location.origin

location.origin包括协议和 URL 的端口(可选)。

例如,的 URL 是 。location.originhttp://www.sitename.com/article/2009/09/14/this-is-an-article/http://www.sitename.com

要定位不支持的浏览器,请使用以下简洁的polyfill:location.origin

if (typeof location.origin === 'undefined')
    location.origin = location.protocol + '//' + location.host;