Tengo una serie de cadenas que necesito repetir y verificar con otra cadena pasada.
var filterstrings = ['firststring','secondstring','thridstring']; var passedinstring = localStorage.getItem("passedinstring"); for (i = 0; i < filterstrings.lines.length; i++) { if (passedinstring.includes(filterstrings[i])) { alert("string detected"); } } ¿Cómo me aseguro de que aquí se ignore la distinción entre mayúsculas y minúsculas (preferiblemente mediante el uso de expresiones regulares) al filtrar, si la var passedinstring tuviera cadenas como FirsTsTriNg o fiRSTStrING ?
Puede crear un RegExp a partir de cadenas de filterstrings primero
var filterstrings = ['firststring','secondstring','thridstring']; var regex = new RegExp( filterstrings.join( "|" ), "i"); luego test si el passedinstring está allí
var isAvailable = regex.test( passedinstring );Simplemente puede convertir la cadena pasada a minúsculas.
var passedinstring = localStorage.getItem("passedinstring").toLowerCase();El método de matriz ES6 filter() puede simplificar la solución a una sola línea. Utilice el método include( ) para determinar si una matriz incluye un determinado valor entre sus entradas junto con el método toLowerCase() para convertirlo a minúsculas.
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.toLowerCase())