如何使用正则表达式过滤角度

时间:2014-12-24 10:24:13

标签: javascript regex angularjs

使用正则表达式过滤角度数据,但没有得到任何输出我按照以下方式过滤数据:“尝试完全匹配

$scope.filteredEntries = filterFilter($scope.data, {path:'^/$'})

$ scope.data有以下

$scope.data = [{'id':1,'Name':'abc','path':'/'},
              {'id':2,'Name':'def','path':'/'},
              {'id':3,'Name':'xyz','path':'/abc/'}]

afterfilter后的预期数据

[{'id':1,'Name':'abc','path':'/'},
{'id':2,'Name':'def','path':'/'}]

1 个答案:

答案 0 :(得分:1)

这样的正则表达式不受支持,因为框架很难将它与实际的字符串'^/$'区分开来。

如果您想要完全匹配,可以提供comparator parameter true

$scope.filteredEntries = filterFilter($scope.data, {path: '/'}, true);

演示1:http://plnkr.co/edit/WwpToPlb7j3JakGPVyFx?p=preview

另一个选择是使用函数来过滤对象:

$scope.filteredEntries = filterFilter($scope.data, function(obj) {
    return /^\/$/.test(obj.path);
});

注意,正则表达式应为^\/$,您需要转义/个字符。但是对于使用正则表达式的特定任务来说是过度的,你可能应该选择第一个选项。

演示2:http://plnkr.co/edit/dqiOP2lkBx1OazwsSlw7?p=preview