Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何停止我的搜索函数检查大小写(大写/小写)-Javascript/ReactJS_Javascript_Reactjs - Fatal编程技术网

如何停止我的搜索函数检查大小写(大写/小写)-Javascript/ReactJS

如何停止我的搜索函数检查大小写(大写/小写)-Javascript/ReactJS,javascript,reactjs,Javascript,Reactjs,我正在使用ReactJS中的搜索功能。我的搜索功能工作正常,但它正在检查大小写(大写/小写)。这是我的演示。您可以检查搜索功能。我想摆脱大小写检查(大写/小写)。我应该如何以最简单的方式更改代码 这是我的搜索功能 getMatchedList(searchText) { console.log('inside getMatchedList'); if (searchText === ''){ this.setState({ data: this.state.dataD

我正在使用ReactJS中的搜索功能。我的搜索功能工作正常,但它正在检查大小写(大写/小写)。这是我的演示。您可以检查搜索功能。我想摆脱大小写检查(大写/小写)。我应该如何以最简单的方式更改代码

这是我的搜索功能

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,它将相应地查询它。我正在实现自定义搜索框