jQuery,删除某些文本块

时间:2014-02-06 16:04:09

标签: javascript jquery wordpress

是否有可能使用jQuery(或其他任何东西)从元素中删除某些文本但保留其余文本?

我正在使用Wordpress插件将我的所有推文编译成WP帖子,但帖子标题会使用推文的全文正文自动保存。例如;

@username http://t.co/XXXXXXXX #hashtag

我希望能够删除超链接以及#hashtag

主题标签将始终相同(即;它始终为#hashtag),但超链接将随每个帖子而变化。有没有办法可以做到这一点?

3 个答案:

答案 0 :(得分:0)

根据用户名,链接和主题标签是否始终位于推文的相同位置,事情可能更难或更容易。但我可能会建议在''上拆分推文字符串并循环以构造一个字符串,而不包含以'@','http://t.co'和'#'开头的单词。

使用完整示例会更容易,因为您可能不想删除所有句柄,用户名和主题标签。但我怀疑你可能想要利用的格式有一些统一性。

示例:

   var words = $(el).text().split(' ');
   var cleaned = [];
   for (var i = 0, len = words.length; i < len; i++) {
         if (!(words[i].indexOf('@') === 1)) { // ... etc for other characters
             cleaned.push(words[i]);
         }
   }
   var cleaned_string = cleaned.join(' ');

答案 1 :(得分:0)

Jquery Link:

var test = "@username http://t.co/XXXXXXXX #hashtag";
var matchindex = test.indexOf("#");
alert(matchindex);   // Tells you at what index the hashtag starts
var res = test.split("#");
alert(res[0]); // Gives you rest of the string without hastag

你可以做这样的事情来获取没有hashtag的字符串。你必须先将整个文本作为字符串输入变量。

答案 2 :(得分:0)

您可以使用正则表达式删除网址和hastags,例如: 要删除http部分:

fullTweet.replace(/http:\/\/.+?\s/g, "");

正则表达式意味着http://后跟任意数量的字符,直到一个空格(使用非渴望,即+?,意味着它将在第一个空格处停止)

删除主题标签

fullTweet.replace(/#.+?(\s|$)/g, "");

这是一个#后跟任何字符,直到字符串的空格或结尾

Here's a complete example.

Good reference for javascript regular expressions