用于URL的最后一个路径组件的rel-tag bookmarklet

时间:2008-11-05 15:39:52

标签: regex tags bookmarklet rel folksonomy

许多网站都支持folksonomy标记。您可能听说过rel-tag,其中说“URL的最后一个路径组件是标记的文本”。

我正在寻找bookmarklet或者greasemonkey脚本(javascript)来获取当前在浏览器中查看的URL的“最后路径组件”,将该标记添加到另一个URL,然后在新选项卡中打开该页面或窗口。

例如,如果我正在查看delicious.com page with the tag "foo",我可能想要创建a new URL with the tag "foo"。这也适用于最后一个路径组件中的多个标记,例如foo+bar

已提供一些regexp suggestions

3 个答案:

答案 0 :(得分:4)

由于您使用的是JavaScript,因此无需担心主机名,查询字符串等 - 只需使用location.pathname即可获得重要位。

例如:

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

这允许潜在的单尾随斜杠。

您可以使用/[^\/]+\$/来禁止使用尾部斜杠,也可以/[^\/]+\/*$/使用任意数量的斜杠。

答案 1 :(得分:0)

如果您认为自己的网址都有效,则可以使用此正则表达式从第一个网址获取代码:

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

第一个(也是唯一一个)捕获组将保留标记。此正则表达式不匹配没有任何标记的网址。

要将标记附加到其他网址,请搜索正则表达式:

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

并替换为:

$1/tag

如果原始URL的路径以斜杠结尾,则此正则表达式确保不会在URL中以两个相邻的斜杠结束。

答案 2 :(得分:-1)

实施,就像服务器的设置方式一样,所有的爵士乐?我对这些东西知之甚少= \啊啊听起来