【发布时间】:2015-04-01 14:41:38
【问题描述】:
如果我有一个对象数组
var obj = [{
text: "Hello my name is none of your business"
},
{
text: "This is the second text of this object, hello"
},
{
text: "This is the third text of this object, hello"
},{
text: "This is a copy of the third text of this object, hello"
}];
如何过滤掉所有包含关键字不一定按顺序排列的对象?提供了一个 jsfiddle 以供进一步澄清
例如
用户搜索“this”,过滤器返回第二、第三和第四个文本
用户搜索“第三个副本”,过滤器只返回第四个文本,
问题在于,使用基本过滤器(下面的示例)似乎可以搜索准确的短语。例如“第三个副本”将返回一个空结果。用户必须输入“第三个副本”才能返回结果。
JSFiddle:http://jsfiddle.net/mpm2uamf/
我想在所有单个空格上使用 split 函数,然后使用 Regex 以某种方式循环该函数...但我显然不知道我在做什么
.filter('searchBody', function(){
return function(elements, input){
if(input !== undefined){
var inputs = input.split(" ");
}
var filtered = [];
// loop through user inputs and make them optional in RegExp?
var letterMatch = new RegExp(inputs, 'i');
for(var i = 0; i < elements.length; i++){
var element = elements[i];
if( letterMatch.test(element.body)){
filtered.push(element);
}
}
return filtered;
};
})
谁能给我提示或解释如何做到这一点?
【问题讨论】: