Comparação de strings que não diferenciam maiúsculas de minúsculas em JavaScript

Valentine Kagwiria 12 outubro 2023
  1. Use os métodos de string toUpperCase() / toLowerCase() para fazer comparação entre maiúsculas e minúsculas em JavaScript
  2. Use o método de string localeCompare() para fazer uma comparação sem distinção entre maiúsculas e minúsculas em JavaScript
  3. Use um método de expressão regular RegExp para fazer uma comparação sem distinção entre maiúsculas e minúsculas em JavaScript
Comparação de strings que não diferenciam maiúsculas de minúsculas em JavaScript

Este artigo explica como realizar uma comparação de strings sem distinção entre maiúsculas e minúsculas em JavaScript.

Use os métodos de string toUpperCase() / toLowerCase() para fazer comparação entre maiúsculas e minúsculas em JavaScript

No método toUpperCase(), as strings são primeiro convertidas em maiúsculas ou minúsculas e depois comparadas com o operador triplo igual ===.

Aqui está um exemplo.

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.')
}

Resultado:

The strings are equal.

Como alternativa, você também pode converter as strings em minúsculas usando o método de string toLowercase() como no exemplo a seguir.

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.')
}

Resultado:

The strings are NOT equal

É importante notar, entretanto, que o método de letras maiúsculas é o preferido. É porque alguns caracteres do alfabeto não podem fazer uma viagem de ida e volta quando convertidos para letras minúsculas. Isso significa essencialmente que eles podem não ser capazes de ser convertidos de uma localidade para outra de uma forma que represente esses caracteres de dados com precisão.

Use o método de string localeCompare() para fazer uma comparação sem distinção entre maiúsculas e minúsculas em JavaScript

Embora o método acima forneça uma resposta fácil, pode não funcionar bem quando as strings incluem caracteres Unicode. O método de string localeCompare pode cuidar disso. É usado com a opção sensibilidade: 'base' para capturar todos os caracteres Unicode. Por exemplo, podemos fazer isso em uma instrução if() para obter resultados quando as strings em questão são iguais e quando não são:

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

Resultado:

The strings are different.

Use um método de expressão regular RegExp para fazer uma comparação sem distinção entre maiúsculas e minúsculas em JavaScript

Neste método, usamos o padrão RegExp com o método test() para fazer uma comparação entre strings que não diferenciam maiúsculas de minúsculas. Por exemplo,

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');
}

Resultado:

Similar strings

Artigo relacionado - JavaScript String