Я использую этот код js для сопоставления имени хоста из строки:
url.match(/:\/\/(www\.)?(.[^/:]+)/);
Это работает, когда URL имеет протокол: // в начале.Например:
Это прекрасно работает:
var url = "http://domain.com/page";
url.match(/:\/\/(www\.)?(.[^/:]+)/);
Но это не так:
var url = "domain.com/page";
url.match(/:\/\/(www\.)?(.[^/:]+)/);
Я пробовал:
url.match(/(:\/\/)?(www\.)?(.[^/:]+)/);
И это прекрасно соответствует имени хоста, когда оно не содержит протокола: //, но когда оно действительно содержит его, оно возвращает только протокол, а не имя хоста.
Как я могу сопоставить домен, когда ононе содержит?