AngularJs: 如何在过滤时避免字母大小写

AngularJs: How to avoid lettercase while filtering

情况:

由于特殊情况,我不得不制作自己的过滤器,而不是使用普通的 angular 过滤器:

我在四个层次上有一个嵌套对象:程序 - 天数 - 大厅 - 演示文稿。 每个大厅都是一个包含相关介绍的手风琴。

反正我做的滤镜没问题

除了一件事:现在过滤器是字母大小写。

因此,如果演示文稿名称是 'Automation' 并且用户键入 'automation',则它不会显示在结果中。

代码:

现在正在寻找用户在演示文稿名称中输入的字符串的简单索引:

angular.forEach(value_halls.presentations, function(presentation_info, key_presentation) 
{
    var name    = presentation.name;
    var index   = name.indexOf($rootScope.filter.name);

    if (index > -1 ) 
    {           
        $rootScope.program_list_filtered.push(presentation_info);
    }

}); 

问题:

你知道过滤时如何避免字母大小写吗?

谢谢!

您可以在两个字符串上使用 toLowerCase

var index = name.toLowerCase().indexOf($rootScope.filter.name.toLowerCase());

实现这一点的一种方法是像这样使用将两个字符串都转换为大写字母:

var name    = presentation.name.toUpperCase();
var index   = name.indexOf($rootScope.filter.name.toUpperCase());

另一种方法是使用正则表达式

var name    = presentation.name;
var index = name.match(new RegExp($rootScope.filter.name, "i"));