0
我需要创建一个正则表达式函数,它将过滤包含选定字符串的文章提要列表。为过滤器创建javascript正则表达式函数
下面的代码在用户单击过滤器选项时将变量'tf'添加到所选字符串中。变量'tf'可能是这样的:“香草冰淇淋,视频游戏”,“香草冰淇淋”和“视频游戏”是关键词。
$(".trending").click(function(){
$(this).toggleClass("selected");
var temp22 = "";
$(".trending.selected").each(function(i, e) {
temp22 += $(this).attr("id").substr(9) + ", ";
});
tf = temp22;
filter_trend();
});
下面的代码段通过搜索文章列表来查看文章列表是否包含关键字。 $(f2)是文章的列表,我通过返回仅包含其html中的关键字的文章进行过滤。
function filter_trend(){
var tfilter = new RegExp (tf, "i");
if (tf == ""){
filter_load();
return;
}
if (f == "")
var f2 = ".article";
else
var f2 = f;
$(f2).hide();
//alert(f2);
$(f2).filter(function(i,e) {
return i < list_length && tfilter.test($(e).html());
}).show();
}
有没有办法使用正则表达式,或者我应该用另一种方法?
为什么在使用'.indexOf'时使用正则表达式? http://jsfiddle.net/d2M5n/ –
另外,当你可以将'tf'作为函数参数传递给'filter_trend()'时,依靠全局变量传递信息并不是一个好习惯。 – nnnnnn