Ste*_*hen 14 javascript jquery
我想从引用者网址获取域名.我主要得到的推荐人网址是http://www.davidj.com/pages/flyer.asp&http://www.ronniej.com/linkdes.com/?adv=267&loc=897
当我得到像上面这样的推荐人网址时,我只想获得域名示例:http://www.davidj.com
我尝试过使用.split方法,但我在使用它时遇到了麻烦.
und*_*ned 15
var url = "http://www.ronniej.com/linkdes.com/?adv=267&loc=897"
var referrer = url.match(/:\/\/(.[^/]+)/)[1];
Run Code Online (Sandbox Code Playgroud)
if (document.referrer) {
url = document.referrer;
ref = url.match(/:\/\/(.[^/]+)/)[1];
}
Run Code Online (Sandbox Code Playgroud)
你可以使用内部将url写入一个锚元素,并从那个获取较小的部分
var anchor = document.createElement("a");
anchor.href = "http://www.davidj.com/pages/flyer.asp";
console.log(anchor.protocol + "//" + anchor.host); // "http://www.davidj.com"
Run Code Online (Sandbox Code Playgroud)
因为你不必关心拆分或类似的事情,这要容易得多......这是非常合乎逻辑的...本机锚具有相同的属性window.location,至少对于URL而言
编辑:IE 6-9将默认端口添加到anchor.host //"http://www.davidj.com:80
尝试使用 JS 原生 URL 接口处理 URL 字符串:
let domain = (new URL(document.referrer)).hostname;
Run Code Online (Sandbox Code Playgroud)
参考:https : //developer.mozilla.org/en-US/docs/Web/API/URL
链分割,切片和连接:
document.referrer.split("/").slice(0,3).join("/")
Run Code Online (Sandbox Code Playgroud)