有没有办法用lodash区分大小写的过滤器?我尝试了此操作(请参见下文),但这仅部分起作用(当用户输入也为小写时)。另一个问题是,一次搜索后所有字符都小写。

我想过滤,无论如何(小写或大写)。

 filter(q: string) {
    let query = q.trim();
    let searchData = [];
    searchData = clone(this.data);

    searchData = searchData.map((entity) => {
        entity.email = entity.email.toLowerCase();
        return entity;
    });

    if (query) {
        this.approverEntities = filter(searchData, (a) => a.email.indexOf(query) >= 0);
    } else {
        this.approverEntities = this.data;
    }
}

提前致谢!

最佳答案

这种方法对我非常有用:

this.approverEntities = _.filter(searchData, (a) =>  {return new RegExp(a.email, 'i').test(query)});

一个警告是,如果a.email包含任何特殊字符,则regex表达式会将其作为regex标记(例如,括号,方括号等)进行处理。此解决方案将处理特殊字符,无论...

this.approverEntities = _.filter(searchData, (a) =>  {return a.email.toLowerCase() == query.toLowerCase()});

关于javascript - Lodash过滤器忽略大小写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43068931/

10-14 04:33