是否有可能使用jQuery(或其他任何东西)从元素中删除某些文本但保留其余文本?
我正在使用Wordpress插件将我的所有推文编译成WP帖子,但帖子标题会使用推文的全文正文自动保存。例如;
@username http://t.co/XXXXXXXX #hashtag
我希望能够删除超链接以及#hashtag
主题标签将始终相同(即;它始终为#hashtag
),但超链接将随每个帖子而变化。有没有办法可以做到这一点?
答案 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)
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, "");
这是一个#后跟任何字符,直到字符串的空格或结尾