Designed by Derf !
70 en ligne   Boutique | Sites | Bar | Forum | PhpBB | Actu | Glossaire | Codes | Tips | Liens | Livres | Lettre  


 Recherche

 NewsLetter





   

L'objet REGEXP (1/2)

Les Expressions Régulières et JavaScript





Didier
Qu'est-ce que c'est encore que cette bête ?... En fait, un moyen simple, même si parfois obscur au premier abord, pour faire des recherches d'occurences dans une chaîne... Exemple :

Pour vérifier la validité de structure d'une adresse email saisie dans un formulaire :

Page 1  2  SUITE >> 
Télécharger tout le tutorial JavaScript/VBScript

function verif(email) { // vérif validité email par STRING
   var arobase = email.indexOf("@")
   var point = email.lastIndexOf(".")
   if((arobase < 3)||(point + 2 > email.length)
      ||(point < arobase+3)) return false
   return true
}
function verif(email) { // vérif validité email par REGEXP
   var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
   return (reg.exec(email)!=null)
}

Evidemment comme ça, à froid, c'est illisible... alors détails :
  • var reg = /blablabla/ définit un masque de recherche
  • reg.exec(votrechaîne) cherche les occurences du masque dans votre chaîne et retourne ce qui a été trouvé ou null
  • "blablabla" enfin se décompose dans notre exemple de la manière suivante :

    • ^ : depuis le début de la chaîne
    • [a-z0-9.-_]+ : cherche au moins 1 caractère spécifié (de "a" à "z" ou "0" à "9" ou "." ou "-" ou "_")
    • @ : suivis de l'arobase
    • [a-z0-9]{2,} : suivis d'au-moins 2 caractères spécifiés (de "a" à "z" ou "0" à "9")
    • [.] : suivis d'un point (entre crochets car spécial dans regexp)
    • [a-z]{2,3} : suivis de 2 à 3 caractères spécifiés (de "a" à "z")
    • $ : et la chaîne doit être terminée
Note : + signifie "au moins 1 fois le caractère précédent" équivalent à {1,}

Du coup vous voyez qu'il est facile de tester si l'internaute a bien tapé...
  • un nombre entier : var reg = /^\d+$/
    ( \d équivaut à [0-9] )
  • ou un décimal : var reg = /^\d+[.]\d+$/
  • ou un nombre (entier ou décimal) : var reg = /^\d+[.]?\d*$/
    ( * signifie "0 ou plusieurs fois" et ? signifie "0 ou 1 fois" )
  • ou un décimal finissant par ".5" (demandé par un visiteur) var reg = /^\d*[.]5$/
  • ... etc

L'objet RegExp, comme ceux utilisés dans les autres fiches, est décrit dans la doc JVScript ! Suivent quelques-uns des caractères pouvant constituer ce masque...
CaractèreExemplesCommentaire
^  $   Début et fin de la saisie
[ ] [asp]   [0-9]   [a-zA-Z] Liste de caractères
[^ ] [^asp]   [^0-9]   [^a-zA-Z] Liste de caractères exclus
(modele)   Modèle
x|y (f|z)oo : marche pour foot ou zoo x ou y
*   Le caractère précédent apparaît 0 ou plusieurs fois
+   Le caractère précédent apparaît 1 ou plusieurs fois
?   Le caractère précédent apparaît 0 ou 1 fois
{n}   Le caractère précédent apparaît exactement n fois
{n,}   Le caractère précédent apparaît au moins n fois
{n,m}   Le caractère précédent apparaît de n à m fois
\ \\ --> \     \( --> (     \) --> )
\n --> nouvelle ligne
\f --> saut de page
\t --> tabulation
Le caractère suivant est spécial
\b   Fin d'un mot
\B   Pas à la fin d'un mot
\xHH \x41 <--> A Code hexadécimal d'un caractère
\s \s <--> [ \f\n\r\t\v] Tout caractère séparateur
\S \S <--> [^ \f\n\r\t\v] Tout caractère non séparateur
\ autres \d <--> [0-9]
\D <--> [^0-9]
\w <--> [A-Za-z0-9_]
\W <--> [^A-Za-z0-9_]
Raccourcis

REMARQUES
  • On peut déclarer autrement une variable RegExp : var reg = new RegExp("blablabla")

  • Un paramètre supplémentaire (commutateur) peut être ajouté :
    var reg = /blablabla/commut ou var reg = new RegExp("blablabla","commut")
    avec 3 valeurs possibles pour commut :
    • i : ignorer la casse (diff maj/min) ;
    • g : recherche globale (toutes les occurences) ;
    • gi : recherche globale ignorant la casse ;


  • la 1ère occurence trouvée dans la chaîne est à RegExp.index ou -1 si pas trouvé...

  • On peut aussi remplacer les occurences par une autre sous-chaîne : chaine.replace(reg, souschaine)

  • On peut aussi décomposer une chaîne en un tableau : chaine.split(reg)

  • On peut enfin obtenir un tableau des résultats de recherche avec exec ou match... l'élément 0 contient les derniers caractères retenus et les autres éléments (1 à 9) les correspondances des modèles entre parenthèses dans l'expression régulière.
Page 1  2  SUITE >> 

Didier le 30/05/2003 (119 008 hits)
Didier Gratuit : Téléchargez 7 logiciels Microsoft !!!
du 29/09 au 05/11 les MS Days gratuits dans votre ville !!!
Gratuit : Téléchargez SQL Server 2008 !
Gratuit : Formez-vous sur Silverlight, .NET, OpenXML, ...
Au fil des news  
[MAJ] PHP - Administrer en ligne - Protection des pages
Ajout d'un code de validation généré aléatoirement.
PHP - Premier lundi d'une semaine et d'une année
JavaScript - Premier lundi d'une semaine et d'une année
ASP - Premier lundi d'une semaine et d'une année
Alphabet Radio et Code Morse - Alpha Zulu appelle Tango Charlie !
Encoder-Décoder en "Alphabet Radio" ... "Alpha Zulu appelle Tango Charlie !" ou en Code Morse ... ...
Filtrer les modèles de site SharePoint - Filtrer l'affichage des modèles de site SharePoint
Je vous propose de découvrir à l'aide de cet article quels mécanismes peuvent vous permettent de ...
ASP/PHP - Crypter/Décrypter - par table de correspondance
(ASP/PHP) Une méthode pour crypter/décrypter des données par l'utilisation d'une table de ...
PHP - Listes liées (1 table) - version2
[MAJ] Affichage en tableau - ASP/PHP : Afficher des données dans un tableau
Astuce pour l'affichage "en colonnes"
JavaScript - Rendre Visible ou Invisible des éléments d'un form
PHP - Listes liées (1 table) - version1
JavaScript - Intercepter le click sur vidéo WMP ou flash SWF
[MAJ] Une base de données sans base de données - Comment travailler avec des fichiers texte ?
Modification du paramétrage du dossier à scanner dans le popup qui permet de sélectionner l'image.
Jeux de l'été (et de 5) - Un jeu de Motus (mots de 8 lettres)
C'est reparti pour un tour... Comme je venais de proposer un jeu de Mastermind, je me suis dit que, ...
PowerShell - Extraire toutes les collections SharePoint en CSV
PowerShell - Lister les collections pour une WebApp SharePoint
PowerShell - Lister les utilisateurs d'un site SharePoint
PowerShell - Connaître le code version de votre SharePoint
Connaître la version de SharePoint installée - Comment savoir la version de SharePoint en cours
Dans le cadre de la maintenance de plusieurs fermes SharePoint, il est indispensable de connaître ...
PowerShell - Travailler avec une base de données SQL Server
.NET - Visual Studio 2008 sur Facebook : çà rock's
PowerShell - Ajouter des liens sur deux niveaux dans SharePoint
Un petit annuaire perso avec photo - en PHP et MySQL
Avoir des copains et des amis c'est bien que dis-je c'est même vital pour le bien être de chacun. ...
Une base de données sans base de données - Comment travailler avec des fichiers texte ?
Suite à une question sur le forum (les habitués me connaissent), je propose une mini-gestion de ...
Affichage en tableau - ASP/PHP : Afficher des données dans un tableau
Création d'un tableau "à la volée" pour afficher ses données. Affichage "en ligne" ou "en ...
PowerShell - Ajouter une liste dans un site SharePoint
Annuaire d'entreprise en PHP - Très pratique pour ne plus rien perdre
Mon petit annuaire d'entreprise, je m'en sers tous les jours alors autant vous en faire profiter. ...
PHP-MySQL : Formulaire - pour le script 'Bon anniversaire' de DB77
Formulaire et script d'enregistrement pour le script « Bon anniversaire » de DB77 en PHP/MySQL ...
.NET - Introducing Microsoft Silverlight 2.0, 2nd Edition
PHP5 - Upload de fichiers - Classe PHP
PHP - PHP 5 /MYSQL® 5
PHP - Calcul de la surface d'un polygone
Comment supprimer des items d'une liste SharePoint - Supprimer les informations d'une liste SharePoint
SharePoint permet bien sur de stocker des données. Parfois, on peut vouloir effacer certaines de ...
Dreamweaver CS4 - Nouvelle version Béta
Voici la nouvelle mouture, annoncée en juin, juste 6 mois après la sortie de la version CS3. Je ...
PowerShell - Synchronisation répertoire par répertoire
PowerShell - Ajouter des items dans une liste SharePoint
Localisation des développements avec SharePoint - Rendre ses applications SharePoint internationales
Lorsque l'on développe des applications avec SharePoint, on se confronte très souvent à une ...
PowerShell - Supprimer tous les items d'une liste SharePoint
PowerShell - Vider la Corbeille SharePoint d'une collection
Modification de l'adresse du Search Center - Définir la page de résultat d'une ferme MOSS
Lorsque l'on installe MOSS dans une ferme SharePoint et que l'on configure le moteur de recherche ...
Tutorial : HTML | Scripting | ASP-PHP | ASP.net | SQL Server | XML
Sharepoint | XAML | Pocket | Dreamweaver | VML | Divers
  Scripts : Scripting | ASP-PHP | ASP.net | Divers
  Boutique | Annuaire | Bannières | Météo | Tribune | Partenariats
v3 © Didier 2003   
 

Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
 Wygwam MVP CodePPC DotNet Project El Roubio Codes Sources The Inquirer FR TechNet ASP-magazine Groupes Utilisateurs Microsoft