在tweet-Javascript或jQuery中匹配可能的hashtag列表

在tweet-Javascript或jQuery中匹配可能的hashtag列表,javascript,regex,twitter,Javascript,Regex,Twitter,首先,我看了很多关于Stackoverflow的帖子,但我没有看到一个是确定的方式。似乎总有人在正则表达式中发现缺陷 我已经检索了我的tweet,很明显,它们可以包含任意数量的hashtag 如果我有一个可能的标签数组,我想找到-[“#英格兰”、“#爱尔兰”、“#威尔士”]等等 检查tweet是否包含这些标签的可靠方法是什么。我不想再次调用API,我只想检查我现有的推文,因为我正在点击按钮以动态更改过滤,如果他们长时间不停地点击,我想避免速率限制 编辑: 示例:这是一条包含“ENGLAND an

首先,我看了很多关于Stackoverflow的帖子,但我没有看到一个是确定的方式。似乎总有人在正则表达式中发现缺陷

我已经检索了我的tweet,很明显,它们可以包含任意数量的hashtag

如果我有一个可能的标签数组,我想找到-[“#英格兰”、“#爱尔兰”、“#威尔士”]等等

检查tweet是否包含这些标签的可靠方法是什么。我不想再次调用API,我只想检查我现有的推文,因为我正在点击按钮以动态更改过滤,如果他们长时间不停地点击,我想避免速率限制

编辑:

示例:这是一条包含“ENGLAND and”和“someothertag”的推特

我想搜索所有tweet,只显示包含一个或多个标记数组的tweet,我已经缓存了tweet,我不想打包含任何标记的电话,只需过滤现有结果

// 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 = "";
}
如果你不知道手边标签的名字 替换

如果你不知道手边标签的名字 替换


当您可以对任何hashtag进行哈希化时,为什么只对特定的hashtag进行哈希化(您需要指定并维护这些hashtag)

我通常会这样使用:

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>';
    });
var hashregex=/#([a-z0-9\-]+)/gi,
text=text.replace(hashregex,函数(值){
返回“”;
});

然后,当您将内容设置为已处理的推文时,您可以只使用
text
当您可以对任何标签进行哈希化时,为什么只对特定的哈希标签进行哈希化(您需要指定并维护这些标签)

我通常会这样使用:

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>';
    });
var hashregex=/#([a-z0-9\-]+)/gi,
text=text.replace(hashregex,函数(值){
返回“”;
});

然后,当您将内容设置为已处理的tweet时,您可以只使用
text
,例如,您可以存储元素上实体的hashtag

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

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

例如,您可以存储元素上实体的hashtag

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


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

Twitter API包含一个hashtags字段,为什么不在您最初获取数据时缓存该字段?Twitter API不是在响应实体中返回tweet的hashtags吗?我不明白,如果我有4个不同标记名的按钮,我如何过滤结果而不再次调用api?@Neil只需将实体存储为存储tweet的元素的属性,然后用jquery@menacingly你能给我一个答案的例子吗?就像使用数据属性一样,例如Twitter API包含一个标签字段,为什么不在最初获取数据时缓存该字段?Twitter API不是在响应实体中返回一条推文的标签吗?我不明白,如果我说有4个不同标签名的按钮,我如何在不再次调用api的情况下过滤结果?@Neil只需将实体存储为存储tweet的元素的属性,然后用jquery@menacingly你能给我一个答案的例子吗?比如说使用一个数据属性好吧,我完全理解你在这里的意思,但是我怎么知道一些推特实际上包含了“英格兰-爱尔兰”?我使用http调试器检查了一条tweet的结果,但我看不到任何地方有与实际tweet文本分开的这些hashtag@neil您使用的是哪种api?我使用JS api仅从一个帐户返回推文,例如:@neil我想您希望include_entities参数设置为true。我将此标记为正确,因为您将我指向include_实体,这正是我所需要的!好吧,我完全理解你在这里的意思,但我怎么知道一些推特实际上包含“英格兰-爱尔兰”?我使用http调试器检查了一条tweet的结果,但我看不到任何地方有与实际tweet文本分开的这些hashtag@neil您使用的是哪种api?我使用JS api仅从一个帐户返回推文,例如:@neil我想您希望include_entities参数设置为true。我将此标记为正确,因为您将我指向include_实体,这正是我所需要的!
$('div.tweet').hide();
$('div.tweet[data-hashtags~="ireland"]').show();