小编典典

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

all

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

例如,给定以下内容:

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

我想得到:

http://www.sitename.com/

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

我已经对此进行了一些搜索,但我在 JavaScript 世界中找到的所有内容似乎都围绕使用 location.host 或类似文件从实际文档 URL
收集这些信息。


阅读 86

收藏
2022-08-03

共1个答案

小编典典

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

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

或者使用下面的戴维斯解决方案)。

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

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

例如,location.originURLhttp://www.sitename.com/article/2009/09/14/this-is-an-article/http://www.sitename.com.

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

if (typeof location.origin === 'undefined')
    location.origin = location.protocol + '//' + location.host;
2022-08-03