Comment supprimer le dernier caractère d'une chaîne JavaScript ? Les 5 meilleures méthodes

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Comment supprimer le dernier caractère d'une chaîne JavaScript ? Guide pas à pas pour débutants et experts



Avez-vous déjà été confronté à une situation où vous deviez supprimer une virgule superflue à la fin d'une chaîne, retirer un point ou simplement « couper » le dernier caractère ? Cette question est un véritable hit sur Stack Overflow avec des centaines de milliers de vues. Et ce n'est pas pour rien : le travail avec les chaînes est la base sur laquelle repose 90% du développement front-end.



Dans cet article, nous ne nous contenterons pas de donner des réponses sèches. Nous allons analyser 5 méthodes fonctionnelles, montrer les pièges à éviter et vous apprendre à choisir le bon outil pour chaque tâche. C'est parti !



Pourquoi est-ce important ? Trois scénarios de la vie réelle



Avant de plonger dans le code, imaginons des situations où vous aurez absolument besoin de supprimer le dernier caractère d'une chaîne JavaScript :



  • Formatage de listes : Vous assemblez un tableau en chaîne avec join(', '), mais il reste une virgule superflue à la fin.
  • Traitement d'URL : Vous devez retirer la barre oblique à la fin de l'adresse avant de l'envoyer au serveur.
  • Travail avec des ID : À partir d'une chaîne comme "item-123-", vous devez supprimer le dernier tiret.


Cela vous semble familier ? Alors allons-y pour analyser les méthodes de suppression du dernier caractère en JavaScript.



Méthode n°1 : slice() — le roi de la simplicité et de la vitesse



C'est la méthode la plus populaire et la plus intuitive. La méthode slice() retourne un nouveau tableau (ou une chaîne) en copiant les éléments à partir d'une position donnée.



let str = "Bonjour le monde !";let result = str.slice(0, -1);console.log(result); // "Bonjour le monde "


Comment ça marche ? slice(0, -1) signifie : « prends tous les caractères à partir de l'index 0, et arrête-toi 1 caractère avant la fin ». Les index négatifs en JavaScript comptent à partir de la fin de la chaîne. Génial et concis !



Avantages et inconvénients de slice() :

  • Avantage : Fonctionne aussi bien avec les chaînes qu'avec les tableaux. Ne modifie pas la chaîne d'origine.
  • Avantage : La méthode la plus rapide dans 95% des cas (selon les tests JSperf).
  • Inconvénient : Ne convient pas si vous devez supprimer non pas le dernier caractère, mais par exemple les 3 derniers.


Conseil de pro : Utilisez slice() comme outil principal. C'est la norme de l'industrie.


Méthode n°2 : substring() — un vieil ami fiable



La méthode substring() est contemporaine de JavaScript. Elle fonctionne de manière similaire, mais avec une différence importante : elle ne comprend pas les index négatifs et les convertit simplement en 0.



let str = "JavaScript";// Pour supprimer le dernier caractère, il faut connaître la longueurlet result = str.substring(0, str.length - 1);console.log(result); // "JavaScrip"


Vous voyez ? Il faut calculer la longueur de la chaîne. Ce n'est pas pratique, mais historiquement, substring() est souvent présent dans le code ancien (legacy).



Quand utiliser substring ?

  • Si vous avez besoin de prendre en charge de très vieux navigateurs (IE 8 et inférieur — mais c'est rare).
  • Si vous écrivez du code pédagogique et souhaitez montrer explicitement la logique de travail avec les index.


Important : substring() échange les arguments si le premier est plus grand que le second. slice() dans ce cas retournera une chaîne vide. Soyez attentif !



Méthode n°3 : substr() — obsolète mais tenace



Oui, substr() est officiellement considéré comme obsolète (deprecated) dans la spécification ECMAScript. Mais vous le rencontrerez encore dans des millions de lignes de code sur GitHub.



let str = "Supprimer !";let result = str.substr(0, str.length - 1);console.log(result); // "Supprimer "


La différence avec substring() est que le deuxième argument est la longueur de la partie à extraire, et non l'index de fin. Source de confusion ? Un peu.



Faut-il utiliser substr() en

Blogs

Book Recommendations