JavaScript для удаления страницы для URL - PullRequest
0 голосов
/ 01 апреля 2010

У нас есть функция javascript, которую мы используем для внутреннего отслеживания статистики страниц. Тем не менее, URL-адреса, которые он сообщает много раз, включают номера страниц для страниц результатов поиска, о которых мы не хотели бы сообщать. Страницы, являющиеся отчетами, имеют вид:

http://www.test.com/directory1/2
http://www.test.com/directory1/subdirectory1/15
http://www.test.com/directory3/1113

Вместо этого мы хотели бы, чтобы выше сообщалось как:

http://www.test.com/directory1
http://www.test.com/directory1/subdirectory1
http://www.test.com/directory3

Обратите внимание, что нумерованные имена 'directory' и 'subdirectory' выше приведены только в качестве примера и что фактические имена подкаталогов отличаются, не обязательно включают числа в конце имени каталога и могут иметь уровни глубокие.

В настоящее время наша функция JavaScript создает эти URL-адреса с использованием кода:

var page = location.hostname+document.location.pathname;

Я считаю, что нам нужно использовать функцию замены JavaScript в сочетании с некоторым регулярным выражением, но я совершенно не понимаю, как это будет выглядеть. Любая помощь будет высоко ценится!

Заранее спасибо!

Ответы [ 6 ]

4 голосов
/ 01 апреля 2010

Я думаю, вы хотите это:

var page = location.href.substring(0,location.href.lastIndexOf("/"));

0 голосов
/ 01 апреля 2010

Как насчет этого:

var page = location.split("/");
page.pop();
page = page.join("/");
0 голосов
/ 01 апреля 2010

Вы можете использовать регулярное выражение для этого:

document.location.pathname.replace(/\/\d+$/, "");

В отличие от решений substring и lastIndexOf, это будет исключать конец пути, если он состоит только из цифр.

0 голосов
/ 01 апреля 2010

Не уверен, что вам нужно регулярное выражение, если вы только что удалили последний слэш + контент.

http://www.w3schools.com/jsref/jsref_lastIndexOf.asp

Я бы, вероятно, использовал это для поиска последнего символа "/", а затем сделал бы подстроку от начала строки до этого индекса.

0 голосов
/ 01 апреля 2010

Что вы можете сделать, это найти последний индекс «/» и затем использовать функцию подстроки.

0 голосов
/ 01 апреля 2010

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

EDIT *

lastIndexOf даст вам только позицию, поэтому вам все равно придется заменить. пример:

var temp = page.substring (page.lastIndexOf ("/"), page.length-1);

page = page.replace (temp, "");

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

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