ES6:使用不区分大小写的术语过滤数据

问题描述 投票:6回答:1

这是我通过标题值过滤某些data的方法:

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

所以数据像

Sample one
Sample Two
Bla two

将被“简化”为

Bla two

如果我按two进行过滤。

但是我需要得到过滤后的结果

Sample Two
Bla two
javascript filter ecmascript-6 case-insensitive
1个回答
14
投票

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

// 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()))
© www.soinside.com 2019 - 2024. All rights reserved.