Javascript - получить домен ТОЛЬКО от document.referrer

Я хочу получить ТОЛЬКО домен с URL-адресов реферера. URL-адреса реферера, которые я получаю в основном: http://www.davidj.com/pages/flyer.asp и http://www.ronniej.com/linkdes.com/?adv=267&loc=897

Когда я получаю URL-адреса рефералов, как указано выше, я просто хочу получить пример домена: http://www.davidj.com

Я попытался использовать метод .split, но у меня возникли проблемы с его использованием.

Ответ 1

var url = "http://www.ronniej.com/linkdes.com/?adv=267&loc=897"
var referrer =  url.match(/:\/\/(.[^/]+)/)[1];

http://jsfiddle.net/hyjcD/

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

Ответ 2

вы можете использовать внутреннюю запись 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"

это намного проще, так как вам не нужно заботиться о разделении или что-то в этом роде... это вполне логично... собственный якорь имеет те же свойства, что и window.location, по крайней мере, относительно URL

EDIT: IE 6-9 добавляет порт по умолчанию к anchor.host//"http://www.davidj.com:80

Ответ 3

Разделение цепочки, срез и соединение:

document.referrer.split("/").slice(0,3).join("/")

Ответ 4

Вы можете использовать регулярное выражение:

var matchHost = /^https?:\/\/.*\//;

var match = matchHost.exec('http://www.davidj.com/pages/flyer.asp');
if(match) {
    var host = match[0];
    console.log(host);
}

Ответ 5

if (document.referrer.split('/')[2] == "domain") {
    //................
}