Bien que cela soit l'un de ses principaux
usages dans le monde du développement Web, les expressions
rationnelles ne servent pas qu'à reconnaître une suite
de caractères dans une chaîne, mais peut ensuite se révéler
une véritable trousse à outil de la manipulation de
chaîne. Ainsi, les méthodes de l'objet RegExp nous permettent
de modifier simplement le contenu d'une chaîne : coupure, ajout,
retouche, changement de casse, ajout/retrait de texte/balises... C'est
ce dernier exemple que nous allons voir ici.
Supposons que l'on dispose des initiales
d'une personne, et que l'on souhaite avoir une fonction JavaScript
qui remplace le prénom par le nom complet, et y ajoute un
lien HTML...
Nous utiliserons pour cela la méthode replace()
: après avoir défini expr
comme une expression RegExp reconnaissant la suite de lettres "CMT"
quelque-soit sa position dans la chaine (pas d'indication de début
ou de fin de chaîne) et sa casse (attribut "i"),
nous l'appliquons à notre chaine. La méthode replace()
prend ici pour attribut l'expression à utiliser, et le texte
à remplacer.
Ainsi, dans notre exemple, le texte
"J'estime que CMT est bien parti dans la vie" sera modifié
en "J'estime que Cédric
Malaflouchzme-Traliblütchomaktsk est bien parti dans la vie"
Le code
<script>
var chaine = "J'estime que CMT est bien parti dans la
vie.";
var
expr = new RegExp("(CMT)", "i");
document.write(chaine.replace(expr,
"<a href='mailto:cmt@exemple.fr'>Cédric Malaflouchzme-Traliblütchomaktsk</a>"));
</script>
|