javascript includes() case insensitive

前端 未结 6 1416
臣服心动
臣服心动 2020-12-14 05:07

lets say I have an array of filter strings that I need to loop and check against with other passed in string.

var filterstrings = [\'firststring\',\'secondst         


        
相关标签:
6条回答
  • 2020-12-14 05:53

    convert filterstring and passedinstring to lowercase and compare

    var filterstrings = ['firststring','secondstring','thridstring'];
    var passedinstring = 
    localStorage.getItem("passedinstring").toLowerCase();
    
    for (i = 0; i < filterstrings.lines.length; i++) {
       if (passedinstring.includes(filterstrings[i].toLowerCase())) {
           alert("string detected");
       }
    }
    
    0 讨论(0)
  • 2020-12-14 05:55

    Fixed case sensitivity issue using toLowerCase(). It turns all the string to lower case while comparing.

    var product=productList.filter((x) => x.Name.toLowerCase().includes(("Active").toLowerCase()))
    
    0 讨论(0)
  • 2020-12-14 06:04

    ES6 array method filter() can simply the solution in single line, use includes() method to determines whether an array includes a certain value among its entries.

    var filterstrings = ['firststring','secondstring','thridstring'];
    var passedinstring = localStorage.getItem("passedinstring");
    
    // convert each string from filterstrings and passedinstring to lowercase
    // to avoid case sensitive issue.
    filteredStrings = filterstrings.filter((str) => str.toLowerCase().includes(passedinstring.totoLowerCase())
    
    0 讨论(0)
  • 2020-12-14 06:06

    You can simply convert the passedinstring to lowercase.

    var passedinstring = localStorage.getItem("passedinstring").toLowerCase();
    
    0 讨论(0)
  • 2020-12-14 06:08

    You can create a RegExp from filterstrings first

    var filterstrings = ['firststring','secondstring','thridstring'];
    var regex = new RegExp( filterstrings.join( "|" ), "i");
    

    then test if the passedinstring is there

    var isAvailable = regex.test( passedinstring ); 
    
    0 讨论(0)
  • 2020-12-14 06:09

    My option is comparing UPPER with UPPER or lower with lower transforming both sides (i did it often in SQL):

        var filterstrings = ['firststring','secondstring','thirDstrIng'];
        var passedinstring =  'ThIrDsTrInG3';
        
        //used for of just to make it more readable
        for (filterstring of filterstrings) {
            if (passedinstring.toUpperCase().includes(filterstring.toUpperCase())) {
                alert("string detected");
            }
        
        }
    
    

    Prompts string detected

    0 讨论(0)
提交回复
热议问题