Vous êtes ici : Accueil > Référence HTML et JavaScript > Objet String > Méthode replace
Utilise une expression régulière ou une chaîne pour effectuer une opération de rechercher / remplacer.
String replace(RegExp search, String replacement)
String
replace(RegExp search, Function callbackFunction)
La nouvelle chaîne recrée est retournée après l'opération de rechercher/remplacer.
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.
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 + "");
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);
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;
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