How can I write an angularjs filter to search for string fragments/sequences of strings How can I write an angularjs filter to search for string fragments/sequences of strings angularjs angularjs

How can I write an angularjs filter to search for string fragments/sequences of strings


It is much simpler than that, use the String.indexOf() function:

angular.forEach(items, function(item) {    if( item.label.indexOf(searchText) >= 0 ) filtered.push(item);});

You may want to turn both strings .toLowerCase() to do case-insensitive matching:

searchText = searchText.toLowerCase();angular.forEach(items, function(item) {    if( item.label.toLowerCase().indexOf(searchText) >= 0 ) filtered.push(item);});


angular.module('sgComponents').filter('listfilter',[ function () {    return function(items, searchText) {        var filtered = [];         var regex = new RegExp(".*" + searchItem + ".*", "ig");        angular.forEach(items, function(item) {            if(regex.test(item)){                filtered.push(item);            }        });        return filtered;    }}]);


Take a look at the Angular-UI-Bootstrap directive for typeahead it does exactly what you want: http://angular-ui.github.io/bootstrap/#/typeahead