【发布时间】:2016-03-12 13:49:36
【问题描述】:
我希望能够使用基于我的代码的示例执行以下操作:
- 搜索 Carpenter Company 返回 2 条记录
- 搜索“Carpenter Company”(带双引号)返回 1 条记录
到目前为止我无法让它工作,还尝试将正则表达式与以下表达式结合起来:
"[\w\s]+\"
这是我的 plunker 示例:
http://plnkr.co/edit/SqFOqqiRG7oFXHY89o6e?p=preview
特别是我正在研究的代码部分:
var app = angular.module('filter', [])
app.controller('MainController', function($scope) {
$scope.deals = [{
lob: 'Marine, Motor, Carpenter',
cedent: 'ABC Paris Company',
treaty: 'QS - Test'
}, {
lob: 'Liability',
cedent: 'Carpenter Company',
treaty: 'W/XL Test'
}];
});
// filterBy implementation
app.filter('filterBy', function() {
return function(array, query) {
var parts = query && query.trim().split(/\s+/g) ,
keys = Object.keys(array[0]);
if (!parts || !parts.length) return array;
return array.filter(function(obj) {
return parts.every(function(part) {
return keys.some(function(key) {
return String(obj[key]).toLowerCase().indexOf(part.toLowerCase()) > -1;
});
});
});
};
});
提前感谢您提供一些解决方法。
【问题讨论】:
-
试试this code。
-
@stribizhev 非常感谢您的快速回复。这对于我在我的问题中所说的目的来说很好。但是如果我想组合它,例如搜索:“Company Country”测试它也应该返回一条记录。有什么建议可以优雅地解决这个问题吗?
-
@stribizhev 非常感谢!但是如果我想组合它,例如搜索:“Company Country”测试它也应该返回一条记录。有什么建议可以优雅地解决这个问题吗?
-
你会支持任何转义的引号/符号吗?
-
@stribizhev 不,不一定。
标签: javascript angularjs regex search filter