String.prototype.replaceAll()

Cette traduction est en cours.

La méthode replaceAll() retourne une nouvelle chaîne de caractères dans la quelle toutes les occurences de pattern ont été remplacés par replacement.L'argument pattern peut être de type chaîne de caractères ou RegExp, et l'argument replacement peut être une chaîne de caractères ou une fonction qui sera appelée pour trouver chaque correspondances.

La chaîne de caractrès initiale restera inchangée.

Syntaxe

const newStr = str.replaceAll(regexp|substr, newSubstr|function)

Quand une `regexp` est utilisée, il est préférable d'utiliser le marqueur global ("g"); autrement, l'erreur TypeError: "replaceAll must be called with a global RegExp" sera retournée.

Paramètres

regexp (pattern)
Un objet ou litérale RegExp avec le marqueur global. Les correspondances sont remplacées par newSubstr ou la valeur retournée par la function spécifiée. Une RegExp sans le marqueur global ("g") renverra l'erreur TypeError: "replaceAll must be called with a global RegExp".
substr
Une String qui sera remplacée par newSubstr. Elle est traité comme une chaîne de caracère litéral et non pas comme une expression régulière.
newSubstr (remplacement)
La String qui remplacera la sous-chaîne indiqué par la regexp ou substr donnée en paramètre. Un certain nombre de pattern sont supportés, voir la section "Spécifier une chaîne de caractères comme paramètre" ci-dessous.
function (remplacement)
Une fonction qui a pour but de créer la nouvelle sous-chaîne qui remplacera les occurences trouvés via la regexp ou substr donnée en paramètre. Les arguments passés à cette fonction sont détaillé dans la section "Spécifier une fonction comme paramètre" ci-dessous.

Valeur de retour

Une nouvelle chaîne avec toutes les occurences trouvés remplacés par le pattern de remplacement.

Description

Cette méthode ne remplace ni ne modifie l'objet String original. Elle retourne juste une nouvelle chaîne de caractères.

Spécifier une chaîne de caractères comme paramètre

La chaîne de caractère de remplacement peut inclure les patterns de remplacement spéciaux suivant :

Pattern Insertion
$$ Insert un "$".
$& Insert la chaîne de caracètre trouvée.
$` Insert la portion de chaîne de caracètre qui précède celle trouvée.
$' Inserts la portion de chaîne de caracètre qui suit celle trouvée.
$n Où n est un entier positif inférieur à 100. Insert la n-ième occurence trouvée, à condition que le premier argument un objet RegExp . Note that this is 1-indexed.

Spécifier une fonction comme paramètre

Vous pouvez passer une fonction comlme second paramètre. Dans ce cas, la fonction sera appelée après qu'une occorence soit trouvée. Le résultat de la fonction (valeur de retour) sera utilisé comme chaîne de remplacement. (Note: Les remplacement spéciaux mentionner plus haut ne s'appliqueront pas dans ce cas.)

A noter que la fonction sera utilisé à chaque fois qu'une occurence sera rencontrée, si l'expression régulière donné en paramètre est global.

La fonction admet les argumetns suivants :

Nom Possible Valeur fournit
match L'occurence trouvée. (Correspond au $& du précédent tableau.)
p1, p2, ...

Le n-ième chaîne de caractères trouvée par une sous correspondance entre parenthèses, à condition que le premier paramètre soit un objet de type RegExp object.
(Correspond aux $1, $2, ... précédents.) Par exemple, si  /(\a+)(\b+)/ à été en paramètres, p1 est la correspondance pour \a+, et p2 pour \b+.

offset Le décalage de la sous-chaîne trouvée dans la chaîne d'entrée. (par exemple, si la chaîne complète d'entrée était 'abcd' et la sous-chaîne 'bc' alors, cet argument vaudra 1.)
string La chaîne compète examinée.

(Le nombre d'arguments exact dépend de si le premier arguments de replaceAll() est un objet de type RegExp et, si tel est le cas, du nombre le sous correspondance entre parenthèses qu'il spécifie.)

Exemples

Utiliser replaceAll

'aabbcc'.replaceAll('b', '.'); 
// 'aa..cc'

Les retour de regex non global

Quand on utilise une expression régulère pour chercher une valeur, elle doit être global. Cela ne marchera donc pas:

'aabbcc'.replaceAll(/b/, '.');
TypeError: replaceAll must be called with a global RegExp

Ceci marchera:

'aabbcc'.replaceAll(/b/g, '.');
"aa..cc"

Spécifications

Spécification
ECMAScript (ECMA-262)
La définition de 'String.prototype.replaceAll' dans cette spécification.

Browser compatibility

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
replaceAllChrome Support complet 85Edge Support complet 85Firefox Support complet 77IE Aucun support NonOpera Support complet 71Safari Support complet 13.1WebView Android Support complet 85Chrome Android Support complet 85Firefox Android Support complet 79Opera Android Support complet 60Safari iOS Support complet 13.4Samsung Internet Android Aucun support Nonnodejs Aucun support Non

Légende

Support complet  
Support complet
Aucun support  
Aucun support

A voir également