问题描述
编辑:有人抱怨它没有考虑协议。所以我决定升级代码,因为它被标记为答案。对于那些喜欢单行代码的人......对不起,这就是我们使用代码最小化器的原因,代码应该是人类可读的,这种方式更好......在我看来。
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.origin
URLhttp://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;
解决方法
我正在尝试找到一种相对简单且可靠的方法来使用 JavaScript(或 jQuery)从字符串变量中提取基本 URL。
例如,给定以下内容:
http://www.sitename.com/article/2009/09/14/this-is-an-article/
我想得到:
http://www.sitename.com/
正则表达式是最好的选择吗?如果是这样,我可以使用什么语句将从给定字符串中提取的基本 URL 分配给新变量?
我已经对此进行了一些搜索,但我在 JavaScript 世界中找到的所有内容似乎都围绕使用 location.host 或类似文件从实际文档 URL
收集这些信息。