使用jQuery查找twitter hashtags,并应用链接

Cha*_*yan 7 twitter wordpress jquery

我想通过说我不是jQuery的专业人员来开始这个,这似乎是一个非标准的问题.

基本上我是在wordpress中创建一个博客,并将其合并到循环中,它显示来自我的Twitter个人资料的推文.我想知道如何从这些推文中选择主题标签(例如#foo),然后将html链接应用于主题标签,如下所示...

<a class="hashtag" href="http://twitter.com/#search?q=foo">#foo</a>
Run Code Online (Sandbox Code Playgroud)

链接还必须将#标签(减去#)的值放入链接的#search?q =部分.

这是可能的,如果是这样,我该怎么做呢?

谢谢,查理瑞恩

编辑:

#foo标签将成为h1的一部分,没有标签区分一个单词,如

<h1>Lorem ipsum dolor sit amet #foo et adipiscing</h1>
Run Code Online (Sandbox Code Playgroud)

所以基本上我需要找到所有用#开头的字符串并用链接替换它们,如上所示.

Rei*_*cke 17

您可以创建一个正则表达式来查找这些主题标签并用链接替换它们,使用反向引用来获取匹配的标记.

hashtag_regexp = /#([a-zA-Z0-9]+)/g;

function linkHashtags(text) {
    return text.replace(
        hashtag_regexp,
        '<a class="hashtag" href="http://twitter.com/#search?q=$1">#$1</a>'
    );
} 

$(document).ready(function(){
    $('p').each(function() {
        $(this).html(linkHashtags($(this).html()));
    });
});
Run Code Online (Sandbox Code Playgroud)

编辑:我已将相关代码移动到接受带有主题标签的字符串的函数中,并返回相同的字符串,并将标记替换为链接.它不依赖于jQuery.

$('p').html(linkHashtags($('p').html()));
Run Code Online (Sandbox Code Playgroud)

你只需传递一个元素html值,并用调用的结果替换值linkHashtags.人们可能会编写一个jQuery插件来使这更容易使用.

那个正则表达式可能需要一些工作,我不确定哪些字符可以在一个hashtag中使用,但我想你明白了.