一尘不染

如何在AngularJs中将Regex与ng-repeat结合使用?

angularjs

我想在ng-repeat中使用正则表达式。我尝试了以下代码,但无法正常工作。

<div ng-repeat="user in users | filter:{'type':/^c5$/}"></div>

我有用户数组,我只想显示类型为c5的用户。

如果我用

filter:{'type':'c5'}

然后它也以“ ac5x”类型显示用户,因为它包含c5。

我怎么解决这个问题?也许还有另一种解决方案。

谢谢!


阅读 205

收藏
2020-07-04

共1个答案

一尘不染

Tosh提到的内容应该对您有用!

如果您发现自己想更频繁地使用正则表达式进行过滤,则可以创建一个自定义过滤器。像这样的小提琴使您可以指定一个字段来检查正则表达式:

var myApp = angular.module('myApp', []);
myApp.filter('regex', function() {
  return function(input, field, regex) {
      var patt = new RegExp(regex);      
      var out = [];
      for (var i = 0; i < input.length; i++){
          if(patt.test(input[i][field]))
              out.push(input[i]);
      }      
    return out;
  };
});

像这样使用where 'type'表示要检查的字段(在这种情况下为type字段):

<div ng-repeat="user in users | regex:'type':'^c5$'"></div>
2020-07-04