ES6:使用案例说明术语过滤数据

时间:2017-06-10 04:34:32

标签: javascript filter ecmascript-6 case-insensitive

这是按标题值过滤一些data的方法:

data.filter(x => x.title.includes(term))

所以像

这样的数据
Sample one
Sample Two
Bla two

将会减少'到

Bla two

如果我按two过滤。

但我需要获得过滤后的结果

Sample Two
Bla two

1 个答案:

答案 0 :(得分:9)

您可以使用不区分大小写的正则表达式:

// Note that this assumes that you are certain that `term` contains
// no characters that are treated as special characters by a RegExp.
data.filter(x => new RegExp(term, 'i').test(x.title));

一种更简单,更安全的方法是将字符串转换为小写并进行比较:

data.filter(x => x.title.toLowerCase().includes(term.toLowerCase()))