String. prototype. replace()
Renvoie une nouvelle chaîne dans laquelle la première occurrence d’un motif (ou toutes, avec le flag g) a été remplacée par un autre texte.
- Renvoie
- Une nouvelle chaîne après remplacement. Si rien ne correspondait, la chaîne reste inchangée.
- Modifie l’original
- Non
Exemple
#const message = 'Bienvenue dans le cours HTML. HTML est facile !'
console.log(message.replace('HTML', 'CSS'))
console.log(message.replace(/HTML/g, 'CSS'))
console.log(message)Définition et utilisation
#La méthode replace() cherche un motif et renvoie une nouvelle chaîne avec le fragment remplacé. Quand le motif est un texte simple, seule la première occurrence est remplacée. La chaîne d’origine reste inchangée, il faut donc enregistrer le résultat dans une variable.
Le motif peut être une expression régulière. Avec le flag g, toutes les occurrences sont remplacées, et avec le flag i, la casse cesse d’avoir de l’importance. Dans le texte de remplacement, des séquences spéciales insèrent des fragments de la correspondance : $& représente toute la correspondance, et $1, $2 les groupes capturés dans l’ordre.
Au lieu d’un texte, vous pouvez passer une fonction. Elle sera appelée pour chaque correspondance, et ce qu’elle renvoie se retrouve dans le résultat. Cela permet par exemple de recalculer des nombres présents dans le texte ou de remplacer des mots à partir d’un dictionnaire.
Syntaxe
#string.replace(pattern, replacement)Paramètres
#pattern
string | RegExp
Texte ou expression régulière à trouver. Un texte ne remplace que la première occurrence, une expression avec le flaggles remplace toutes.replacement
string | function
Texte inséré à la place de la correspondance (peut contenir$&,$1, etc.) ou fonction qui reçoit la correspondance et les groupes, et renvoie le texte de remplacement.
Plus d’exemples
#const date = '2026-09-28'
const formatted = date.replace(/(\d{4})-(\d{2})-(\d{2})/, '$3.$2.$1')
console.log(formatted)const receipt = 'Cours 100 euros, e-book 40 euros'
const halfPrice = receipt.replace(/(\d+) euros/g, (match, amount) => `${amount / 2} euros`)
console.log(halfPrice)const review = 'Super cours ! JAVASCRIPT et javascript, c’est la même chose.'
console.log(review.replace(/javascript/gi, 'JavaScript'))Compatibilité des navigateurs
#Largement disponible
Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.
- Chrome
- Edge
- Firefox
- Safari
Bonnes pratiques
#- Pour remplacer toutes les occurrences d’un texte simple, utilisez
replaceAll()ou une expression avec le flagg.replace("a", "b")seul ne change que la première. - Le caractère
$a une signification spéciale dans le texte de remplacement. Écrivez un signe dollar littéral comme$$, ou renvoyez-le depuis une fonction. - En construisant une expression régulière à partir d’un texte saisi par l’utilisateur, méfiez-vous des caractères spéciaux comme
.,*ou?. Pour du texte simple,replaceAll()avec une chaîne est plus sûr.
Entrées associées
#- String.prototype.replaceAll()Renvoie une nouvelle chaîne dans laquelle toutes les occurrences d’un motif ont été remplacées par le texte donné ou le résultat d’une fonction.
- String.prototype.match()Fait correspondre une chaîne à une expression régulière. Renvoie un tableau avec la correspondance, toutes les correspondances, ou null.
- RegExpUne expression régulière : un modèle pour rechercher, valider et remplacer des fragments de texte.
- String.prototype.split()Découpe une chaîne en un tableau de fragments selon un séparateur : un caractère, un texte ou une expression régulière.
- Template literalsDes templates de texte entre guillemets inversés : ils insèrent des valeurs via ${} et peuvent s’étendre sur plusieurs lignes.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.