You need to create a filter function (or a full filter). This is the simplest thing that could work:
HTML
<div ng-app ng-controller="Ctrl"> <input type="text" ng-model="search"> <ul> <li ng-repeat="name in names | filter:ignoreAccents">{{ name }}</li> </ul> </div>
Javascript
function Ctrl($scope) { function removeAccents(value) { return value .replace(/á/g, 'a') .replace(/é/g, 'e') .replace(/í/g, 'i') .replace(/ó/g, 'o') .replace(/ú/g, 'u'); } $scope.ignoreAccents = function(item) { if (!$scope.search) return true; var text = removeAccents(item.toLowerCase()) var search = removeAccents($scope.search.toLowerCase()); return text.indexOf(search) > -1; }; $scope.names = ['Jamón', 'Andrés', 'Cristián', 'Fernán', 'Raúl', 'Agustín']; };
jsFiddle here .
Note that this only works for string arrays . If you want to filter the list of objects (and search in each property of each object, for example, Angular), you have to strengthen the filter function. I think this example should help you get started.
source share