No distingue entre mayúsculas y minúsculas

Resuelto Nate Pet asked hace 12 años • 14 respuestas

Tengo lo siguiente:

if (referrer.indexOf("Ral") == -1) { ... }

Lo que me gusta hacer es no distinguir Ralentre mayúsculas y minúsculas, para que pueda ser RAl, rAl, etc. y aún así coincidir.

¿Hay alguna manera de decir que Ralno se distinguen entre mayúsculas y minúsculas?

Nate Pet avatar Jan 25 '12 03:01 Nate Pet
Aceptado

Añadir .toUpperCase()después referrer. Este método convierte la cadena en una cadena en mayúsculas. Luego, use .indexOf()en RALlugar de Ral.

if (referrer.toUpperCase().indexOf("RAL") === -1) { 

Lo mismo también se puede lograr usando una expresión regular (especialmente útil cuando desea realizar pruebas con patrones dinámicos):

if (!/Ral/i.test(referrer)) {
   //    ^i = Ignore case flag for RegExp
Rob W avatar Jan 24 '2012 20:01 Rob W

Otra opción es utilizar el método de búsqueda de la siguiente manera:

if (referrer.search(new RegExp("Ral", "i")) == -1) { ...

Parece más elegante que convertir toda la cadena a minúsculas y puede ser más eficiente.
Con toLowerCase()el código haga dos pasadas sobre la cadena, una pasada es por toda la cadena para convertirla a minúsculas y otra es para buscar el índice deseado.
Con RegExpel código, pase una vez sobre la cadena que parece coincidir con el índice deseado.

Por lo tanto, en cadenas largas recomiendo usar la RegExpversión (aunque supongo que en cadenas cortas esta eficiencia se debe a la creación del RegExpobjeto)

Kfir Erez avatar Feb 18 '2013 16:02 Kfir Erez

Desde ES2016 también puede utilizar un método ligeramente mejor/más fácil/más elegante (distingue entre mayúsculas y minúsculas):

if (referrer.includes("Ral")) { ... }

o (no distingue entre mayúsculas y minúsculas):

if (referrer.toLowerCase().includes(someString.toLowerCase())) { ... }

Aquí hay una comparación de .indexOf()y .includes(): https://dev.to/adroitcoder/includes-vs-indexof-in-javascript

Łukasz Matuszewski avatar Jun 22 '2018 00:06 Łukasz Matuszewski

Utilice una expresión regular:

if (!/ral/i.test(referrer)) {
    ...
}

O usar .toLowerCase():

if (referrer.toLowerCase().indexOf("ral") == -1)
gilly3 avatar Jan 24 '2012 20:01 gilly3