Comment remplacer toutes les occurrences d'une chaîne en JavaScript ?

Réponses rédigées par Antoine
Dernière mise à jour : 2019-11-21 15:18:58
Thèmes : webmaster - javascript
Question

Comment faire pour remplacer toutes les occurrences d'une chaîne en JavaScript ?

var test = "un deux trois un deux trois";

Comment par exemple remplacer deux par quatre ?

Réponse

Vous pouvez utiliser les expressions régulières pour remplacer toutes les occurrences d'une chaîne en JavaScript :

<script>
var test = "un deux trois un deux trois";
var test = test.replace(/deux/g, 'quatre');
alert(test);
</script>

Remarque : L'option g effectue une substitution sensible à la casse ; pour effectuer un remplacement insensible à la casse, ajoutez l’option i dans l’expression régulière :

var test = test.replace(/deux/gi, 'quatre');

Vous trouverez d'avantage d'informations sur la méthode replace(), et sur la manière de remplacer toutes les occurrences d'une chaîne en JavaScript sur cette page du site de Mozilla.

Réponse

Une autre solution consiste à utiliser split() et join() pour remplacer toutes les occurrences d'une chaîne en JavaScript :

  • La méthode split() tronque une chaîne lorsqu'elle trouve une occurrence et renvoie un tableau.
  • La méthode join() crée et renvoie une nouvelle chaîne en concaténant tous les éléments du tableau.

exemple :

<script>
var test = "un deux trois un deux trois";
var test = test.split('deux').join('quatre');
alert(test);
</script>

Remarque : Cette méthode est quelque peu plus lente que la solution utilisant les expressions régulières.

Réponse

Il existe depuis peu la méthode JavaScript replaceAll(), elle permet de remplacer toutes les occurrences :

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Comment remplacer toutes les occurrences d'une chaîne en JavaScript ?</title>
</head>
<body>
<script>
let chaine = "yui abc def ghi yui klm";
let resultat = chaine.replaceAll("yui", "");
alert(resultat);
</script>
</body>
</html>