Comparación de cadenas sin distinción de mayúsculas y minúsculas en JavaScript

Valentine Kagwiria 12 octubre 2023
  1. Utiliza los métodos de cadena toUpperCase()/toLowerCase() para realizar la comparación entre mayúsculas y minúsculas en JavaScript
  2. Utilice el método de cadena localeCompare() para realizar una comparación insensible a mayúsculas y minúsculas en JavaScript
  3. Usar un método de expresión regular RegExp para hacer una comparación sin distinción de mayúsculas y minúsculas en JavaScript
Comparación de cadenas sin distinción de mayúsculas y minúsculas en JavaScript

Este artículo explica cómo realizar la comparación de cadenas sin distinción de mayúsculas y minúsculas en JavaScript.

Utiliza los métodos de cadena toUpperCase()/toLowerCase() para realizar la comparación entre mayúsculas y minúsculas en JavaScript

En el método toUpperCase(), las cadenas se convierten primero a mayúsculas o minúsculas y luego se comparan con el operador triple igual ===.

He aquí un ejemplo.

var stringA = 'This is a JavaScript tutorial';
var stringB = 'THIS is A javascript TUTORIAL';

if (stringA.toUpperCase() === stringB.toUpperCase()) {
  alert('The strings are equal.')
} else {
  alert('The strings are NOT equal.')
}

Producción :

The strings are equal.

Alternativamente, también puedes convertir las cadenas a minúsculas usando el método toLowercase() como en el siguiente ejemplo.

var stringA = 'This is a JavaScript tutorial';
var stringB = 'THESE are javascript TUTORIALS';

if (stringA.toLowerCase() === stringB.toLowerCase()) {
  alert('The strings are equal.')
} else {
  alert('The strings are NOT equal.')
}

Producción :

The strings are NOT equal

Sin embargo, cabe destacar que es preferible el método de las mayúsculas. Esto se debe a que algunos caracteres del alfabeto no pueden hacer un viaje de ida y vuelta cuando se convierten a minúsculas. Esto significa esencialmente que pueden ser incapaces de ser convertidos de una localización a otra de forma que representen esos caracteres de datos con precisión.

Utilice el método de cadena localeCompare() para realizar una comparación insensible a mayúsculas y minúsculas en JavaScript

Aunque el método anterior ofrece una respuesta fácil, puede no funcionar bien cuando las cadenas incluyen caracteres Unicode. El método de cadena localeCompare puede encargarse de esto. Se utiliza con la opción sensitivity: 'base' para capturar todos los caracteres Unicode. Por ejemplo, podemos esto en una sentencia if() para obtener resultados cuando las cadenas en cuestión son iguales y cuando no lo son:

if ('javascript'.localeCompare('JavaScrpt', undefined, {sensitivity: 'base'}) ==
    0) {
  alert('The strings are equal')
} else {
  alert('The strings are different.')
}

Producción :

The strings are different.

Usar un método de expresión regular RegExp para hacer una comparación sin distinción de mayúsculas y minúsculas en JavaScript

En este método, usamos el patrón RegExp con el método test() para hacer una comparación entre cadenas sin distinción de mayúsculas y minúsculas. Por ejemplo,

const strA = 'This is a case sensitive comparison';
const strB = 'This is a CASE SENSITIVE comparison';
const regex = new RegExp(strA, 'gi');
const comparison = regex.test(strB)

if (comparison) {
  alert('Similar strings');
}
else {
  alert('Different strings');
}

Producción :

Similar strings

Artículo relacionado - JavaScript String