Javascript: получить URL-адрес
var url = 'http://domain.com/file.php?id=1';
или
var url = 'https://domain.us/file.php?id=1'
или
var url = 'domain.de/file.php?id=1';
или
var url = 'subdomain.domain.com/file.php?id=1'
из одного из этих URL-адресов я хочу получить только путь, в приведенном выше примере:
var path = '/file.php?id=1';
Ответы
Ответ 1
Вы можете сделать это с помощью регулярного выражения, но, используя эти собственные свойства, возможно, лучший способ сделать это.
var url = 'subdomain.domain.com/file.php?id=1',
a = document.createElement('a');
a.href = 'http://' + url;
var path = a.pathname + a.search; // /file.php?id=1
Посмотрите на jsFiddle.net
Ответ 2
В книге Дугласа Крокфорда "JavaScript: хорошие части" существует регулярное выражение для возврата всех частей url. Это на стр. 66, и вы можете увидеть его здесь: http://books.google.ch/books?id=PXa2bby0oQ0C&pg=PA66
Вы можете скопировать и вставить здесь: http://www.coderholic.com/javascript-the-good-parts/
Ответ 3
эта версия имеет регулярное выражение. Попробуйте это:
var splittedURL = url.split(/\/+/g);
var path = "/"+splittedURL[splittedURL.length-1];
Ответ 4
Используйте string.lastIndexOf(searchstring, start) вместо регулярного выражения. Затем проверьте, находится ли индекс в пределах границ и получает подстроку от последней косой черты до конца строки.