Angular filter remove accents

by femfoyou

HTML

<div ng-app ng-controller="Ctrl">
    <input type="text" ng-model="search">
    <ul>
        <li ng-repeat="name in names | filter:ignoreAccents:search">{{ 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 = ['Éric', 'Andrés', 'Cristián', 'Fernán', 'Raúl', 'Agustín'];
};