rel-tag bookmarklet для последнего компонента пути URL - PullRequest
2 голосов
/ 05 ноября 2008

Многие веб-сайты поддерживают теги фолксономии. Возможно, вы слышали о rel-tag , где говорится, что «Последний компонент пути URL - это текст тега».

Я ищу букмарклет или скрипт greasemonkey (javascript), чтобы получить «последний компонент пути» для URL, просматриваемого в настоящее время в браузере, добавить этот тег в другой URL, а затем открыть эту страницу в новой вкладке или окно.

Например, если я смотрю на страницу tasty.com с тегом "foo" , я могу захотеть создать новый URL с тегом "foo" . Это также должно работать для нескольких тегов в последнем компоненте пути, например, foo + bar .

Было предложено предложений регулярных выражений .

Ответы [ 3 ]

4 голосов
/ 03 мая 2009

Поскольку вы используете JavaScript, вам не нужно беспокоиться об именах хостов, строках запросов и т. Д. - просто используйте location.pathname, чтобы получить важный бит.

Например:

var NewUrl = 'http://technorati.com/tag/';
var LastPart = location.pathname.match( /[^\/]+\/?$/ );
window.open( NewUrl + LastPart );

Это учитывает потенциальную одиночную косую черту.

Вы можете использовать /[^\/]+\$/, чтобы запретить конечные косые черты, или /[^\/]+\/*$/ для любого их числа.

0 голосов
/ 09 ноября 2009

реализация, как в том, как настроены серверы, все это джаз? Я не очень хорошо осведомлен об этом материале = \ ahh, это звучит

0 голосов
/ 26 ноября 2008

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

^[a-z]+://[^/#?]+/[^#?]*?([^#?/]+)(?:[#?]|$)

Первая (и единственная) группа захвата будет содержать тег. Это регулярное выражение не будет соответствовать URL-адресам, которые не имеют тегов.

Чтобы добавить тег к другому URL, найдите регулярное выражение:

^([^#?]*?)/?(?:[#?]|$)

и заменить на:

$1/tag

Это регулярное выражение не должно заканчиваться двумя соседними косыми чертами в URL, если путь к исходному URL заканчивается косой чертой.

...