【发布时间】:2020-12-02 05:16:44
【问题描述】:
我在数组上使用正则表达式进行过滤,但我想修改它,以便即使有空格也可以搜索:
transform(items: any, filter: any, defaultFilter: boolean): any {
if (!filter){
console.log(items);
return items;
}
if (!Array.isArray(items)){
return items;
}
if (filter && Array.isArray(items)) {
let filterKeys = Object.keys(filter);
if (defaultFilter) {
return items.filter(item =>
filterKeys.reduce((x, keyName) =>
(x && new RegExp(filter[keyName], 'gi',).test(item[keyName],)) || filter[keyName] == "", true),);
}
else {
return items.filter(item => {
return filterKeys.some((keyName) => {
return new RegExp(filter[keyName], 'gi').test(item[keyName]) || filter[keyName] == "";
});
});
}
}
}
}
但我不确定如何添加 ('\s') 表达式以允许空格。
【问题讨论】:
-
您可以尝试替换
item[keyName]中的空格。类似item[keyName].replace(/\s/g, '') -
这会删除在 Angular 中以表格格式显示的整个项目数组
标签: javascript arrays regex filter