我有代码从文本框中搜索输入的单词,获取输入的单词,在集合中搜索并在HTML页面中显示结果。
因为我可以使用LIKE完全按原样搜索单词。
(即)
search: function(type,letters){
var pattern = new RegExp(letters,"gi");
return _(this.filter(function(data) {
return pattern.test(data.get(type));
}));
}
如果模型有,
用户输入“Hello”,它显示我
你好医生
你好世界
即使用户错误地排列了单词,我也需要显示结果
即如果用户输入“World Hello”
没有显示任何结果。但是,我想向用户展示
Hello World
在Web SQL中解决了相同的场景。
Ref here
我想在backboneJS集合中实现这一点。 你能帮我吗?
答案 0 :(得分:1)
您可以在空格上分割文本,然后迭代过滤模型并将其缩小为所需的选择。例如:
var C = Backbone.Collection.extend({
search: function(type, letters) {
var words = letters.split(/\s+/), //array of words
models = _.clone(this.models); //copy of the models
//for each word, check if it is found in the given attribute
_.each(words, function(word) {
var pattern = new RegExp(word, "i");
models = _.filter(models, function(model) {
return pattern.test(model.get(type));
});
});
return models;
}
});