Comparaison de chaînes insensibles à la casse en JavaScript

Valentine Kagwiria 12 octobre 2023
  1. Utilisez les méthodes de chaînes toUpperCase()/toLowerCase() pour effectuer une comparaison insensible à la casse en JavaScript
  2. Utilisez la méthode localeCompare() pour faire une comparaison insensible à la casse en JavaScript
  3. Utiliser une méthode d’expression régulière RegExp pour faire une comparaison insensible à la casse en JavaScript
Comparaison de chaînes insensibles à la casse en JavaScript

Cet article explique comment effectuer une comparaison de chaînes de caractères insensible à la casse en JavaScript.

Utilisez les méthodes de chaînes toUpperCase()/toLowerCase() pour effectuer une comparaison insensible à la casse en JavaScript

Dans la méthode toUpperCase(), les chaînes sont d’abord converties en majuscules ou en minuscules, puis comparées avec l’opérateur triple égal ===.

Voici un exemple.

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

Production :

The strings are equal.

Vous pouvez également convertir les chaînes de caractères en minuscules en utilisant la méthode toLowercase() string comme dans l’exemple suivant.

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

Production :

The strings are NOT equal

Il est à noter, cependant, que la méthode des majuscules est préférable. C’est parce que certains caractères de l’alphabet ne peuvent pas faire un aller-retour lorsqu’ils sont convertis en minuscules. Cela signifie essentiellement qu’ils peuvent ne pas être convertis d’une localité à une autre de manière à représenter ces caractères de données avec précision.

Utilisez la méthode localeCompare() pour faire une comparaison insensible à la casse en JavaScript

Bien que la méthode ci-dessus donne une réponse facile, elle peut ne pas fonctionner correctement lorsque les chaînes comprennent des caractères Unicode. La méthode de comparaison de chaînes de caractères localeCompare peut s’en charger. Elle est utilisée avec l’option sensitivity: 'base' pour capturer tous les caractères Unicode. Par exemple, nous pouvons le faire dans une instruction if() pour obtenir des résultats lorsque les chaînes de caractères en question sont égales et lorsqu’elles ne le sont pas :

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

Production :

The strings are different.

Utiliser une méthode d’expression régulière RegExp pour faire une comparaison insensible à la casse en JavaScript

Dans cette méthode, nous utilisons le modèle RegExp avec la méthode test() pour faire une comparaison entre les chaînes insensibles à la casse. Par exemple,

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

Production :

Similar strings

Article connexe - JavaScript String