How to use Regex with ng-repeat in AngularJs?

I want to use regex in ng-repeat. I have tried the following code but its not working.

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

I have users array and I only want to display the users with type c5.

If I use

filter:{'type':'c5'} 

then its displaying the users with type “ac5x” too, because its contains c5.

How can I solve this problem? Maybe there is another solution.

Thank You!

Answer

What tosh mentions should work for you!

If you find yourself wanting to filter by regex more often you can create a custom filter. Something like this fiddle will let you specify a field to check against a regex:

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;
  };
});

Used like this where 'type' indicates the field you are checking against (in this case a field named type):

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