Tout JavaScript.com - Scripts, Tutoriaux, Forums pour webmasters et développeurs
Retour à l'accueil
Rechercher :    

Les indispensables
Magic Menu
Les meilleurs scripts
Les forums
Les tutoriaux
La référence JavaScript
Les actus du net
Les petites annonces

Shopping
Mon livre : Guide complet Javascript - Nouvelle édition
Hébergement web

Compteur de visites
CountUs.fr - Combien de visiteurs actuellement sur votre site ? Avec CountUs, vous le saurez !

Les javascripts
Les plus vus
Les mieux notés
La boutique

Les tutoriaux
Introduction javascript
La structure javascript
Les limites de javascript
Les popups
Les formulaires
Le DHTML
Les cookies
Les frames
Les maths
Les chaînes de caractères
Les expressions régulières
Débugger un script
AJAX / XMLHTTPRequest
Introduction au PHP
Javascript et PHP
Traiter les données PHP
Intro base de données
Optimiser ses développements
Tous les tutoriaux

Les services
Les questions fréquentes
Les forums | Le chat
L'annuaire de sites
Le livre d'or
Contacts
A propos du site
La newsletter
 Inscription à la newsletter
HTML - Texte

Les partenaires
Beauté-test
Mémoclic
Glandouille.com
Nord vs Sud
Révélateur.com
ActuLab
Foorby, favoris en ligne
Une place pour toi
Cadeau gratuit
Config Mac
Pifex











 
Les différentes actions des RegExp
L'objet RegExp possède plusieurs méthodes qui ont différents effets.
Nous avons déjà vu la méthode test() qui valide une chaîne de caractères en fonction d'un motif.
La méthode exec() retourne un tableau des occurences répondant aux critères du motif.
Sur l'objet string, il existe également des méthodes qui attendent en paramètres une expression régulière.
La méthode search() permet de trouver des occurences répondant aux critères du motif.
La méthode replace() permet de trouver et de remplacer des occurences répondant aux critères du motif.
La méthode match() permet de trouver des occurences répondant aux critères du motif.

Exemple d'utilisation de split() et match()
Supposons une liste de noms séparés par des virgules, des espaces ou des points-virgules, mais dont le format n'est pas uniforme.
Les expressions régulières vont nous permettre de créer un tableau avec tous les noms correctement isolés.
Listes des noms :

Pour l'extraction par split(), cette fonction est utilisée :
function ExtraireNom(chaine) {
  var exp=new RegExp("[, ;]+","g");
  var tabNom=chaine.split(exp);
  if (tabNom==null) {alert("Problème dans l'expression !");}
  else {
    var affichage="Nombre de noms trouvés = " + tabNom.length + "\n";
    for (var i=0;i<tabNom.length;i++){
      affichage=affichage + " ["+ tabNom[i] + "]\n";
    }
    alert(affichage);
  }
}
La méthode split() créé un tableau qui contient tous les éléments trouvés entre le séparateur défini par l'expression régulière.

Pour l'extraction par match(), cette fonction est utilisée :
function ExtraireNom2(chaine) {
  var exp=new RegExp("[a-zA-Z\-]+","g");
  var tabNom=chaine.match(exp);
  if (tabNom==null) {alert("Problème dans l'expression !");}
  else {
    var affichage="Nombre de noms trouvés = " + tabNom.length + "\n";
    for (var i=0;i<tabNom.length;i++){
      affichage=affichage + " ["+ tabNom[i] + "]\n";
    }
    alert(affichage);
  }
}
La méthode match() créé un tableau qui contient tous les éléments qui correspondent à l'expression régulière.


Extraction d'adresse mails dans un texte
Texte à traiter :

Encore une utilisation de la méthode match() : function ExtraireMail(chaine) {
  var exp=new RegExp("[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+","g");
  var tabMail=chaine.match(exp);
  if (tabMail==null) {alert("Problème dans l'expression !");}
  else {
    var affichage="Nombre de mails trouvés = " + tabMail.length + "\n";
    for (var i=0;i<tabMail.length;i++){
      affichage=affichage + " ["+ tabMail[i] + "]\n";
    }
    alert(affichage);
  }
}


Extraire les paramètres d'une url
Grâce aux expressions régulières, on peut également extraire simplement les paramètres passés dans une url pour les traiter en javascript.
Cette fonction crée un tableau associatif avec tous les paramètres de l'url et leur valeur. Il est donc possible de passer des paramètres de page en page en javascript.


Le bouton ouvre un popup pour afficher le résultat
Voici la fonction qui crée le tableau de paramètres :
function TJS_ExtractURL(url) {
  var regexp=new RegExp("[?&]");
  var tab=url.split(regexp);
  tabparam=new Array;
  for (var i=1;i<tab.length;i++){
    tabparam[tab[i].substring(0,tab[i].indexOf("="))]=tab[i].substring(tab[i].indexOf("=")+1)
  }
}


Remplacer des caractères
Les expressions régulières permettent également de remplacer des caractères dans une chaîne.
Chaine AVEC les accents :

Chaine SANS les accents :
Ici, on remplace tous les "e" accentés par un "e".
chaine=chaine.replace(/[éèêë]/g,"e");


Rendre un mail cliquable
La fonction remplace permet également de retenir des valeurs trouvées dans l'expression et de les réutiliser dans la chaîne de remplacement.
Par exemple pour la chaîne de texte suivante :

Après traitement, la chaîne de texte devient :

function TJS_EmailCliquable(email) {
  var exp=new RegExp("([a-zA-Z0-9\.\-_]+@[a-zA-Z0-9\-_]+\.[a-zA-Z0-9]{2,})","g");
  return email.replace(exp,"<A href='mailto:$1'>$1</A>");
}


Rendre une adresse url cliquable
Après traitement, la chaîne de texte devient :

function TJS_UrlCliquable(url) {
  var exp1=new RegExp("((ht|f)tps?://.*)[\\s]+","gi");
  return url.replace(exp1,"<A href='$1'>$1</A>");
}


Pour conclure
Les expressions régulières offrent une immense palette de possibilités. Il suffit d'imaginer.
Une expression régulière n'est jamais terminée. Il est toujours possible de l'améliorer et de l'enrichir.
A vous de jouer !
Essayez aussi l'outil indispensable de r0bl0che



| © Tout JavaScript.com 1999-2005 | Scripts | Tutoriaux | Forums | Référence | Magic Menu V2 | Mailociraptor | Petites annonces informatiques |


Edité par DevTribu sarl  Google
Serveur dédié : Page générée en 2 msec
04/07/2008 02:39:28 - OB = off