JavaScript: получить путь URL - PullRequest
14 голосов
/ 21 декабря 2010
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';

Ответы [ 4 ]

42 голосов
/ 21 декабря 2010

Вы могли бы сделать это с помощью регулярных выражений, но использование этих собственных свойств, возможно, является лучшим способом сделать это.

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

7 голосов
/ 04 февраля 2011

В книге Дугласа Крокфорда "JavaScript: хорошие части" есть регулярное выражение для получения всех частей URL.Это на странице 66, и вы можете увидеть это здесь: http://books.google.ch/books?id=PXa2bby0oQ0C&pg=PA66

Вы можете скопировать и вставить здесь: http://www.coderholic.com/javascript-the-good-parts/

2 голосов
/ 21 декабря 2010

эта версия с регулярным выражением.Попробуйте это:

var splittedURL = url.split(/\/+/g);
var path = "/"+splittedURL[splittedURL.length-1];
0 голосов
/ 21 декабря 2010

Используйте string.lastIndexOf (searchstring, start) вместо регулярного выражения.Затем проверьте, находится ли индекс в пределах границ, и получите подстроку от последней косой черты до конца строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...