par anonyme 21-Novembre-2019

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 ?

3 Réponses

par zyz 15-Avril-2021

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>
par Nico 21-Novembre-2019

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.

par Hervé 21-Novembre-2019

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.

Bienvenue sur 1FORMATIK, où vous pouvez poser des questions en lien avec l'informatique et internet, et recevoir des réponses de l'équipe et d'autres internautes.

2.6k questions

3k réponses

...