匹配推文中可能的主题标签列表 - Javascript或jQuery

时间:2012-02-27 15:46:25

标签: javascript regex twitter

首先,我查看了Stackoverflow上的很多帖子,但我没有看到一个似乎是最终方式的帖子。有人似乎总是在正则表达式中找到一个缺陷。

我已经检索过我的推文,显然每个推文中都可以包含任意数量的主题标签。

如果我想找到一系列可能的主题标签 - [“#ENGLAND”,“#IRELAND”,“#wales”]等等。

检查推文是否包含这些主题标签的可靠方式是什么?我不想再次调用API,我只想检查我现有的推文,因为我点击了按钮来动态更改过滤,如果他们长时间点击一下就想避免速率限制。

编辑:

示例:这是一条包含#ENGLAND和#someothertag

的推文

我想搜索所有的推文,只显示包含我的一个或多个标签的推文,我已经缓存了推文,我不想打包含任何标签只是过滤现有结果!

3 个答案:

答案 0 :(得分:0)

// match a #, followed by either "question" or "idea"
var myregexp = /#(england|ireland|wales)\b/i;
var match = myregexp.exec(subject);
if (match != null) {
    result = match[1]; // will contain "england","ireland", or "wales"
} else {
    result = "";
}

如果您不知道手头标签的名称 取代

 var myregexp = /#(england|ireland|wales)\b/i;

 var myregexp = /#(\w+)/; // Use this instead

答案 1 :(得分:0)

为什么只能在散列化任何主题标签时对特定主题标签(需要指定然后维护)进行散列化?

我通常使用这样的东西:

var hashregex = /#([a-z0-9_\-]+)/gi,
    text = text.replace(hashregex, function (value) {
       return '<a target="_blank" href="http://twitter.com/#!/search?q=' + value.replace('#', '%23') + '">' + value + '</a>';
    });

然后,当您将内容设置为已处理的推文时,您可以使用text

答案 2 :(得分:0)

您可以存储元素中实体的主题标签,例如

<div class='tweet' data-hashtags='england ireland'>some_tweet</div>

当有人点击您的按钮时,请按此过滤:

$('div.tweet').hide();
$('div.tweet[data-hashtags~="ireland"]').show();

它显然大大简化了,但一般方法应该可以帮助您避免自己解析标记