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

Matching a list of possible hashtags in a tweet - Javascript or jQuery

本文关键字:列表 -Javascript jQuery 标签 文中可      更新时间:2023-09-26

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

我已经检索到了我的推文,很明显,它们可以在每条推文中包含任意数量的标签。

如果我有一系列可能的标签,我想找到-["#英格兰"、"#爱尔兰"、"#wales"]等

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

编辑:

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

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

当你可以散列任何标签时,为什么只散列特定的标签(你需要指定并维护)?

我通常使用这样的东西:

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

您可以将实体的标签存储在元素上,例如

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

当有人点击你的按钮时,像这样过滤:

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

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

// 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