Соответствие списку возможных хештегов в твите - Javascript или jQuery - PullRequest
2 голосов
/ 27 февраля 2012

Во-первых, я просмотрел много постов в Stackoverflow, но не вижу ни одного, который кажется окончательным.Кто-то, кажется, всегда находит недостаток в регулярном выражении.

Я уже получил свои твиты, и, очевидно, они могут содержать любое количество хэштегов в каждом.

Если у меня есть массив возможных хэштеговчто я хочу найти - ["#ENGLAND", "# IRELAND", "# wales"] и т. д.

Что такое НАДЕЖНЫЙ способ проверить, содержит ли твит эти хэштеги.Я не хочу снова вызывать API, я только хочу проверить свои существующие твиты, так как я нажимаю на кнопки, чтобы изменить фильтрацию на лету, хочу избежать ограничения скорости, если они продолжают нажимать целую вечность.

РЕДАКТИРОВАТЬ:

Пример: Вот твит, который содержит #ENGLAND и # someothertag

Я хочу найти все твиты и просто показать твиты, которые содержат один или несколько из моихмассив тегов, я уже кеширую твиты, я не хочу делать вызов, содержащий какие-либо теги, просто отфильтровать существующие результаты!

Ответы [ 3 ]

0 голосов
/ 27 февраля 2012

Почему хешировать можно только определенные хештеги (которые нужно указать, а затем поддерживать), когда можно хешировать любой хештег?

Обычно я использую что-то вроде этого:

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, когда устанавливаете контент для обработанных твитов

0 голосов
/ 27 февраля 2012

Вы можете хранить хэштеги от сущностей в элементе, например

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

, и фильтровать, когда кто-то нажимает на вашу кнопку:

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

Это, очевидно, значительно упрощается,но общий подход должен помочь вам не разбирать теги самостоятельно

0 голосов
/ 27 февраля 2012
// 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...