HOWTO · JavaScript

Supprimer un caractère d'une chaîne de caractères en JavaScript

Il montre différentes façons de supprimer un caractère d'une chaîne de caractères en JavaScript

Sur cette page

Les chaînes JavaScript sont immuables : supprimer un caractère crée et renvoie une nouvelle chaîne, sans modifier la valeur d’origine. Choisissez l’opération selon la façon dont le caractère est identifié : une expression régulière globale pour supprimer toutes les correspondances, slice() pour supprimer un caractère à une position donnée, ou replace() avec une chaîne de recherche pour supprimer uniquement la première correspondance. Les exemples utilisent DelftStack, où la lettre t apparaît deux fois, afin de rendre la différence entre ces choix visible.

Supprimer chaque caractère correspondant avec une expression régulière globale

Passez une expression régulière avec le drapeau g à replace() pour supprimer toutes les occurrences. Sans g, une expression régulière ne remplace que sa première correspondance. La chaîne de remplacement '' n’ajoute aucun caractère, et le résultat est affecté à une nouvelle variable, car replace() ne modifie pas la chaîne d’origine.

Pour supprimer tous les t correspondants, exécutez cet exemple :

Le code et les libellés ou sorties affichés dans cette section restent en anglais.

const original = "DelftStack";
const result = original.replace(/t/g, "");
console.log(result);
DelfSack

Ce motif littéral convient lorsque le caractère est connu à l’avance. Si le motif est construit à partir d’un texte fourni par l’utilisateur, échappez les métacaractères des expressions régulières avant de créer le RegExp ; sinon, des caractères comme . ou * seront interprétés comme des opérateurs au lieu de correspondre littéralement. Pour un caractère fixe, une classe de caractères d’expression régulière peut aussi exprimer la correspondance, mais pensez à échapper les caractères qui ont une signification particulière dans cette classe.

Supprimer un caractère à un index connu avec slice()

Les index des chaînes JavaScript commencent à zéro. Dans DelftStack, le t se trouve à l’index 4 ; prenez donc la partie qui précède cet index et concaténez-la avec la partie qui suit le caractère. slice() renvoie chaque partie sans modifier la chaîne source. La destination API n’est confirmée qu’en anglais dans l’inventaire fourni. Cette suppression est fondée sur la position : à un index valide, elle retire le caractère qui s’y trouve, qu’il corresponde ou non au caractère recherché. Vérifiez d’abord text[index] si la correspondance est importante.

Pour supprimer le caractère à l’index 4, exécutez cet exemple :

Le code et les libellés ou sorties affichés dans cette section restent en anglais.

const original = "DelftStack";
const index = 4;
const result = original.slice(0, index) + original.slice(index + 1);
console.log(result);
DelfStack

Dans une fonction réutilisable, vérifiez que l’index est un entier compris entre 0 et text.length - 1 avant de concaténer les tranches. Avec cette expression, un index égal ou supérieur à la longueur de la chaîne laisse celle-ci inchangée. Un index négatif a un comportement différent avec slice() et peut supprimer du texte à partir de la fin ; validez donc l’index au lieu de supposer que toute valeur hors limites ne change rien. L’indexation des chaînes JavaScript porte sur des unités de code UTF-16 ; un symbole visible représenté par une paire de substituts peut occuper deux index.

Supprimer uniquement le premier caractère correspondant avec replace()

Lorsque la valeur recherchée est une chaîne, replace() supprime uniquement sa première occurrence correspondante. C’est le choix le plus direct lorsque seule la première correspondance doit disparaître. Comparez le résultat à celui de l’exemple avec une expression régulière globale : le premier t disparaît et le t suivant reste. Utilisez plutôt une expression régulière avec g pour supprimer toutes les occurrences correspondantes.

Pour supprimer uniquement le premier t correspondant, exécutez cet exemple :

Le code et les libellés ou sorties affichés dans cette section restent en anglais.

const original = "DelftStack";
const result = original.replace("t", "");
console.log(result);
DelfStack

Ces méthodes renvoient des chaînes : vous pouvez stocker le résultat, le transmettre à une autre fonction ou réaffecter une variable déclarée avec let. Elles ne modifient pas une chaîne associée à une liaison const : const empêche de réaffecter la variable, tandis que la valeur chaîne elle-même est immuable. Pour enchaîner plusieurs transformations, choisissez la méthode dont la règle de correspondance est la plus claire, puis transmettez sa valeur de retour à l’opération suivante. Les méthodes fondées sur la recherche, comme replace(), laissent le texte inchangé si la valeur recherchée est absente ; la suppression par index suit la position et retire le caractère qui s’y trouve lorsque l’index est valide.