Ответ 1
var url = "http://www.ronniej.com/linkdes.com/?adv=267&loc=897"
var referrer = url.match(/:\/\/(.[^/]+)/)[1];
if (document.referrer) {
url = document.referrer;
ref = url.match(/:\/\/(.[^/]+)/)[1];
}
Я хочу получить ТОЛЬКО домен с 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, но у меня возникли проблемы с его использованием.
var url = "http://www.ronniej.com/linkdes.com/?adv=267&loc=897"
var referrer = url.match(/:\/\/(.[^/]+)/)[1];
if (document.referrer) {
url = document.referrer;
ref = url.match(/:\/\/(.[^/]+)/)[1];
}
вы можете использовать внутреннюю запись 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
Разделение цепочки, срез и соединение:
document.referrer.split("/").slice(0,3).join("/")
Вы можете использовать регулярное выражение:
var matchHost = /^https?:\/\/.*\//;
var match = matchHost.exec('http://www.davidj.com/pages/flyer.asp');
if(match) {
var host = match[0];
console.log(host);
}
if (document.referrer.split('/')[2] == "domain") {
//................
}