Designed by Maunakea !
44 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 (116 367 hits)
Didier Gratuit : Formez-vous sur Silverlight, .NET, OpenXML, ...
Ils l’ont fait avec SQL Server. Découvrez comment !
Concours de programmation Flash !
Au fil des news  
[MAJ] Un beau cadre autour d'une photo - Comment encadrer une photo
Ajout d'une troisième page proposant le "passe-partout" ou "Marie-Louise".
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
PowerShell - Modifier le Thème d'une collection SharePoint
PowerShell - Tester l'existance ou effacer une WebPart
PowerShell - Définir une valeur pour une propiété d'un SPWeb
PowerShell - Importer une liste SharePoint depuis un fichier
PowerShell - Exporter une liste SharePoint dans un fichier
PowerShell - Lister les propriétés d'un site SharePoint
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 ...
PHP - Redimensionner Image + Picto après Upload - Galerie photos, revue de presse, ...
Upload de photo, redimensionnement, création de picto, enregistrement ...
ASP - Redimensionner Image + Picto après Upload - Galerie photos, revue de presse, ...
Upload de photo, redimensionnement, création de picto, enregistrement ... Utilisation ...
Exporter et Importer un site SharePoint - Comment déplacer un site SharePoint
Une question est très régulièrement posée à tout responsable de ferme SharePoint : Comment ...
Bon anniversaire - Comment le souhaiter à ses membres ?
Avoir un site, c'est bien. Avoir des inscrits, c'est mieux. Souhaiter leur anniversaire, c'est ...
Audio & Vidéo - Multimédia dans ses pages web
AUDIO/VIDEO : QuickTime, MediaPlayer, RealPlayer, FlashPlayer, ... : Du multimédia dans ses pages ...
Magazines - Le Hors-Série .Net de Programmez !
PHP - Administrer en ligne - Protection des pages
Protéger ses pages pour administrer son site en ligne en (relative) sécurité (PHP).
Communautés - Concours de programmation Flash !
[MAJ] Afficher ses images à la taille voulue - Utilisation du composant IMGSIZE
Ajout de la vérification de l'existence du fichier et d'un test d'erreur de retour du composant ...
Protéger ses Images - Propriété intellectuelle - Vie privée
Je me suis penché sur la question en tant qu'artiste moi-même, et concepteur de site web pour ...
Création de miniatures - Fonction php de création
Cette fonction sert à créer des miniatures.
ASP - Administrer en ligne - Protection des pages
Protéger ses pages pour administrer son site en ligne en (relative) sécurité (ASP).
JavaScript - Numéros de ligne à gauche d'un textarea
Protection - Sécurité - Mise au point - Précautions - Solutions
Même sans être paranoïaque, on a tous entendu parler de failles de sécurité, piratage informatique, ...
AspSmartUpload - Mode d'Emploi
Le composant ASPSmartUpload (gratuit) permet de gérer les téléchargements de FICHIERS ou de ...
JavaScript - Contrôler une date saisie dans un formulaire
HTML - Ajouter un fichier multimédia dans une page web
HTML - Musique de Fond sur son site
Afficher ses images à la taille voulue - Utilisation du composant IMGSIZE
Devant la diversité des formats d'image actuels, il est parfois nécessaire de connaître les ...
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
 Groupes Utilisateurs Microsoft The Inquirer FR TechNet DotNet Project Codes Sources El Roubio ASP-magazine CodePPC Wygwam MVP