好吧我在http://jsfiddle.net/Duayne/nFnEF/
做了一个小提琴我终于想出了如何组合我的脚本片段并删除链接:
function setRSSFeed() {
$('#test').rssfeed('http://www.riogrande.com/rss', {
limit: 4,
sort: 'title',
sortasc: true,
header: false,
date: false,
content: false,
snippet: false
}, function () {
$('#test h4 a').each(function () {
var $link = $(this);
$link.after($link.text());
$link.remove();
});
});
}
现在我需要插入一个正则表达式
^.*\b(Gold|Silver)\b.*$
所以我只会得到第一和第四行。我在哪里把这一行放在我的代码中?
即便如此,我仍然需要弄清楚如何删除“金属价格(日期) - ” 从这两行也是如此。
任何帮助......任何人......?
答案 0 :(得分:0)
以下是使用正则表达式获取两个匹配行的一种方法:
$('#test h4 a').each(function () {
var $link = $(this),
text = $link.text();
if (/^.*\b(Gold|Silver)\b.*$/.test(text))
$link.after(text);
$link.remove();
});
也就是说,在.each()
循环中,您可以每次删除链接,但在此之前,只有在项目匹配时才添加文本。
演示:http://jsfiddle.net/nFnEF/1/
要删除“金属价格......”部分,您可以使用不同的正则表达式.replace()
来捕获要保留的两个部分:
var re = /^(Gold|Silver)[^-]+-\s?([\d.]+)$/;
$('#test h4 a').each(function () {
var $link = $(this),
text = $link.text();
if (re.test(text))
$link.after(text.replace(re,"$1 $2"));
$link.remove();
});
括号中的模式部分是捕获匹配,您可以在替换字符串中按编号引用匹配。
答案 1 :(得分:0)
http://jsfiddle.net/nabil_kadimi/nFnEF/3/
你可以将正则表达式放在$ .filter中,如下所示:
$(document).ready(function () {
setRSSFeed();
function setRSSFeed() {
$('#test').rssfeed('http://www.riogrande.com/rss', {
limit: 4,
sort: 'title',
sortasc: true,
header: false,
date: false,
content: false,
snippet: false
}, function () {
$('#test h4 a').each(function () {
var $link = $(this);
$link.after($link.text());
$link.remove();
});
$('#test h4').filter(function () {
return !$(this).text().match('^(Gold|Silver)');
}).remove();
});
}
});