React-Native: Check if string contains string

18,374

You can do this with indexOf like this:

if (searchString.indexOf(ab.toLowerCase()) > -1)
{ 
     ...
}
Share:
18,374
profidash_98
Author by

profidash_98

From Germany

Updated on June 21, 2022

Comments

  • profidash_98
    profidash_98 almost 2 years

    My goal is it to create a search ListView with JSON Data. This is working but I have a tiny problem with the search function. When I type in a word, it has to be exactly the same word, which is in the Array of the ListView. The main problem is that I have to type in the correct word. For example: when the word stackoverflow is one item of the Array, I have to type in stackoverflow to find this item. But I want to get the Item also when I type in stack or flow or stacko for example.

    This is my code:

        filterDatasource(event)
      {
          var searchString = event.nativeEvent.text.toLowerCase();
          if (searchString != "")
          {
    
              var content = this.state.loadedContent;
              var searchResultsArray = [];
    
              for (var i = 0; i < content.length; i++) {
    
    
                var detailArray = content[i];
                const gattung = detailArray.Gattung;
                const zugnummer = detailArray.Zugummer;
                const ab = detailArray.ab;
                const bis = detailArray.bis;
                const wochentag = detailArray.Wochentag;
                const zeitraum = detailArray.Zeitraum;
    
    
                if (searchString.contains(ab.toLowerCase())) //searchString.indexOf(ab) >= 0
                {
    
                    //alert('gefunden');
                    searchResultsArray.push(detailArray);
                    this.setState({ dataSource: ds.cloneWithRows(searchResultsArray) });
    
                }
    
    
              }
    
          }
          else {
    
            this.setState({ dataSource: ds.cloneWithRows(this.state.loadedContent) });
    
          }
      },
    
  • profidash_98
    profidash_98 almost 8 years
    Or has it to do with the for Loop?