Javascript - получить URL текущей страницы без нумерации страниц - PullRequest
1 голос
/ 11 августа 2011

Скажите, что у меня есть URL для статьи:

http://domain.com/blog/articles/title-here/

И у него около 5 страниц, так что, проходя каждую страницу, вы получаете:

http://domain.com/blog/articles/title-here/ ИЛИ http://domain.com/blog/articles/title-here/1

http://domain.com/blog/articles/title-here/2

http://domain.com/blog/articles/title-here/3

http://domain.com/blog/articles/title-here/4

http://domain.com/blog/articles/title-here/5

Я знаю, что следующий код получит полный текущий URL (он же включает страницу №):

var u = window.location.href;

Но есть ли способ ограничить его, чтобы страница # НЕ была частью переменной "u"?

Может быть, есть регулярное выражение или что-то, что я должен добавить туда ...? (Я довольно новичок в javascript, поэтому не уверен, как это применить?)

Ответы [ 4 ]

4 голосов
/ 11 августа 2011
var u = window.location.href.match(/.*[/][^\d]*/)[0]

Будет ли это работать для вас?

Редактировать

Я изменил это ... снова: P

2 голосов
/ 11 августа 2011

ПРИМЕЧАНИЕ: Regex является более сложной версией Джозефа и все еще страдает от той же ошибки. Будет восстановлен, когда я это исправлю.

Ответ Джозефа хорош, но в нем есть небольшая ошибка: он пропустит последнюю часть URL, если у вас есть такой URL:

http://domain.com/blog/articles/title-here

Вы можете использовать это вместо:

var u = window.location.href.match(/(.*)(\/\d*)/)[1]

Как работает регулярное выражение:

/          # delimiter
(.*?)      # match anything and put in capture group 1
(\/        # match the forward slash
 \d*)      # match zero or more digits
/          # delimiter
1 голос
/ 11 августа 2011
var l = window.location;
l.href.replace(l.pathname, l.pathname.split(/\/[0-9]+$/)[0]);

попробуйте в консоли по этому адресу

0 голосов
/ 11 августа 2011

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

var a = 'http://domain.com/blog/articles/title-here/2'.split('/');
a.splice(-1, 1);
a.join('/');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...