javascript - 仅从document.referrer获取域名

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)

http://jsfiddle.net/hyjcD/

if (document.referrer) {
   url = document.referrer; 
   ref = url.match(/:\/\/(.[^/]+)/)[1];
}
Run Code Online (Sandbox Code Playgroud)


Tob*_*ogh 9

你可以使用内部将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

  • IE 似乎确实将端口添加到 `anchor.host`,但没有添加到 `location.host`。如果您不需要端口,您可以使用 `anchor.hostname` 和 `location.hostname` 代替。 (2认同)

OXi*_*GEN 7

尝试使用 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


Nie*_*sol 5

链分割,切片和连接:

document.referrer.split("/").slice(0,3).join("/")
Run Code Online (Sandbox Code Playgroud)