@newaitix

Как разобрать url при помощи регулярного выражения?

match(/((?:http|https):\/\/)*(?=(?:[\w]*\.[\w]*:[\d]*))*([\w]*\.[\w]*:[\d]*\/)*((\w*\/)*)*(\w*\.\w*)*\?*((?:\w*=\w*)*(?:\w*=\w*&)*(?:\w*=\w*)*)*(#\w*)*/)

разобрать нужно адрес http(s)://google.com:8080/folder/folder/file.php?param1=param1&param2=param2#hash

При этом в адресе могут отсутствовать домен следовательно и протокол тоже,могут быть а могут не быть директории может быть или не быть файла или может быть применен чпу могут присутствовать а могут отсутствовать параметры и хеш.

на выходе нужно получить ["http","google.com:8080","/folder/folder/","file.php","param1=param1&param2=param2","hash"]
  • Вопрос задан
  • 451 просмотр
Пригласить эксперта
Ответы на вопрос 1
@run100500
Можно использовать свойства элемента <a>
var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";

parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port;     // => "3000"
parser.pathname; // => "/pathname/"
parser.search;   // => "?search=test"
parser.hash;     // => "#hash"
parser.host;     // => "example.com:3000"

Источник
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы