有没有办法用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/