如何停止我的搜索函数检查大小写(大写/小写)-Javascript/ReactJS
我正在使用ReactJS中的搜索功能。我的搜索功能工作正常,但它正在检查大小写(大写/小写)。这是我的演示。您可以检查搜索功能。我想摆脱大小写检查(大写/小写)。我应该如何以最简单的方式更改代码 这是我的搜索功能如何停止我的搜索函数检查大小写(大写/小写)-Javascript/ReactJS,javascript,reactjs,Javascript,Reactjs,我正在使用ReactJS中的搜索功能。我的搜索功能工作正常,但它正在检查大小写(大写/小写)。这是我的演示。您可以检查搜索功能。我想摆脱大小写检查(大写/小写)。我应该如何以最简单的方式更改代码 这是我的搜索功能 getMatchedList(searchText) { console.log('inside getMatchedList'); if (searchText === ''){ this.setState({ data: this.state.dataD
getMatchedList(searchText) {
console.log('inside getMatchedList');
if (searchText === ''){
this.setState({ data: this.state.dataDefault });
}
if (!TypeChecker.isEmpty(searchText)) {//Typechecker is a dependency
console.log('inside if block');
const res = this.state.dataDefault.filter(item => {
return item.firstName.includes(searchText) || item.lastName.includes(searchText);
});
console.log('res' + JSON.stringify(res));
this.setState({ data: res });
}
}
如果我删除了Typechecker依赖项,我应该如何更改代码?我基本上希望我的搜索函数不区分大小写您可以使用toLowerCase
if (!TypeChecker.isEmpty(searchText)) {
console.log("inside if block");
const res = this.state.dataDefault.filter(item => {
if (
item.firstName.toLowerCase().includes(searchText.toLowerCase()) ||
item.lastName.toLowerCase().includes(searchText.toLowerCase())
)
return item;
});
console.log(res);
this.setState({ data: res });
}
使用
ReactTable
您可以直接通过表格道具进行筛选
定义表访问器时,可以以下列方式定义它们:
{
Header: "Name",
columns: [
{
Header: "First Name",
accessor: "firstName",
filterMethod: (filter, row) =>
row[filter..toUpperCase().includes(filter.value.toUpperCase())
},
{
Header: "Last Name",
id: "lastName",
accessor: "lastName",
filterMethod: (filter, row) => row[filter.id].toUpperCase().includes(filter.value.toUpperCase())
}
]
},
如您所见,filter方法
将为您进行筛选
然后,您可以完全删除getMatchedList
函数(因此您也可以根据需要删除TypeChecker
)
不区分大小写是通过使用toUpperCase()
(您甚至可以使用toLowerCase()
)来检查值,这将使您不区分大小写
这是你的叉子:
您的意思是希望您的搜索区分大小写还是不区分大小写?@Qurimmo caseinsensitive@quirimmo你能帮我重新构造函数使其不区分大小写吗?我能想到的最简单的方法是使用javascript的方法将需要与小写进行比较的两个字符串转换为小写()。所以只需在if条件中进行比较,if(item.firstName.toLowerCase()==searchText.toLowerCase())@tommy123给你:我本打算发布解决方案,但阿塞弗罗夫抢先发布了lol@aseferov如果我输入所有大写字母/所有小写字母,这行吗?@AndrewL如果我输入所有大写字母/所有小写字母,这行吗?伙计们,你们在测试你们提供的解决方案吗?是的。打开上面的分叉提琴,尝试搜索sm5、am2或m3,它将相应地查询它。我正在实现自定义搜索框