Vous êtes ici : Accueil > Référence HTML et JavaScript > Objet String > Méthode replace

Méthode replace

Description

Utilise une expression régulière ou une chaîne pour effectuer une opération de rechercher / remplacer.

Syntaxe

String replace(RegExp search, String replacement)
String replace(RegExp search, Function callbackFunction)

Paramètres

  • RegExp search : L'expression régulière ou la chaîne de recherche à utiliser
  • String remplacement : La chaîne de remplacement.
  • Function callbackFunction : Utiliser une fonction de callback à la place d'une chaîne pour effectuer l'opération de remplacement (voir plus loin).

Valeur de retour

La nouvelle chaîne recrée est retournée après l'opération de rechercher/remplacer.

Utiliser une fonction de callback à la place d'une chaîne pour le remplacement

Pour pouvoir effectuer des recherches/remplacement plus complexes, JavaScript vous permet d'utiliser une fonction de callback à la place d'une simple chaîne de remplacement. Cette fonction recevra en paramètre les parenthèses capturantes ainsi que la position de l'occurence, et devra retourner la chaîne qui doit remplacer l'intégralité de la chaîne trouvée en entrée. Elle fonctionne plus ou moins comme le ferait preg_replace_callback en php. Pour mieux comprendre, voyez le troisième exemple présenté plus loin. La fonction de callback doit être de la forme :

String anonymous (String $0, String $1, ...., String $n, Integer index, String input)

OÛ $0 contient la totalité de l'occurence trouvée, $1 à $n le contenu des parenthèses capturantes de l'expression, index la position du premier caractère de l'occurence dans la chaîne d'entrée, et input la chaîne d'entrée.

Exemples

Le script suivant remplace la lettre "o" par la lettre "i" dans la chaîne "Bonjour tout le monde !" :

// ON crée la chaîne de base
var chaine = "Bonjour tout le monde !";

// On crée l'expression régulière
var reg
= new RegExp("o", "g");

// On effectue l'opération de remplacement
var chaine2 = chaine.replace(reg, "i");

// et on affiche le résultat
alert("Chaîne
d'origine : " + chaine + ". Chaine modifiée : " + chaine2 + "");

Exécuter le script

Ce deuxième exemple, un peu plus complexe, montre la manière d'utiliser les expressions parenthèsés des expressions régulières ($n). IL récupère tous les montants indiqués en euros et les remplace par des montants en dollars.

// On crée le texte de base
var
chaine = "Nous vous proposons notre ordinateur superpuissant à moins de 1000 ?, mais vous pouvez également commander notre tapis de souris à 2 ? qui reprend
nos couleurs. Si votre commande dépasse 200 ?, vous ne payez pas les frais de port.";

// On crée l'expression régulière
var reg = new RegExp("([0-9]+)\\s*?",
"g");

// On crée la nouvelle chaîne
chaine = chaine.replace(reg, "$ $1");

// et on affiche le résultat
alert(chaine);

Exécuter le script

Voici un troisième exemple qui vous montre comment utiliser les fonctions de callback. IL récupère les noms de balises HTML en majuscules et les convertit en minuscules :

// ON
récupère le contenu de la zone de texte
var texte = document.getElementById('ta').value;

// ON crée l'expression régulière de recherche
var
regexp = /<\/?[a-zA-Z]+/g;

// ON crée la fonction de callback
function callbackReplacement (s0, index, input) {
return s0.toLowerCase();
}

//
On effectue le remplacement
texte = texte.replace(regexp, callbackReplacement);

// On met à jour la zone de texte
document.getElementById('ta').value
= texte;

Voir aussi

RegExp, search, match, split.

Vous êtes ici : Accueil > Référence HTML et JavaScript > Objet String > Méthode replace

Dernière modification de cette page : Mardi 4 avril 2006 08:00
Haut de page  •  Contact  •  RSS  •  Valide XHTML 1.0