comprendre regexp

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : comprendre regexp

par AB » 10 déc. 2007, 23:57

Si c'est pour valider une adresse email, perso j'utilise la première solution de ce lien
http://atranchant.developpez.com/code/validation/

par Berzemus » 10 déc. 2007, 23:39

Tu as fait une faute sur le premier élément, en fait le ^ veut dire que l'expression doit commencer par ce qui suit (en l'occurence un caractère alpha numérique)
ach zut.. j'ai du foir le chapeau tans les brackets, et pas detans.. :oops:

par Invité » 10 déc. 2007, 19:02

le * signifi simplement que l'on peut répéter tout ce qu'il y a entre parenthèses juste avant autant de fois que l'on veut
et le $ veut dire que l'expression doit se terminée par ce qui précède...

par Invité » 10 déc. 2007, 18:36

ok, merci à tous les 2. et le *$ qui est en fin d'expression?

par jojolapine » 10 déc. 2007, 18:21

element par element:

^[a-zA-Z] : Valide tout caractère qui n'est pas une lettre. (une fois)

Groupe (entre parenthèses):

([\.\-a-zA-Z0-9@])? : valide un point, un trait, une lettre (majuscule ou minuscule), un chiffre ou un arobase.

[a-zA-Z0-9]* : valide n'importe quel chaine contenant des chiffres et des lettres (maj,min), de longeur minimale 1.

Et encore un (*) pour répeter le groupe à l'envie..

Si j'ai bien compris, il s'agit d'une vérification d'émail.
C'est vrai qu'elle est coriace.. et mal faite/écrite. Non, y'a pas a dire, pour vérifier un émail, ça convient vraiment pas.

Tu devrais trouver d'autres exemples sur ce forum, en chercheant un peu. (de quelques lignes à quelques centaines, la validation d'émail étant un sujet épineux)
Tu as fait une faute sur le premier élément, en fait le ^ veut dire que l'expression doit commencer par ce qui suit (en l'occurence un caractère alpha numérique)

par Berzemus » 10 déc. 2007, 16:30

la syntaxe est elle la même pour une expression rég. en php ou javascript?
Oui, sinon qu'il faut entourer l'expression de deux symboles identiques, de préférence non présentes dans le regex.
preg_replace ("#[a-z]#","",$str);
Pour ce qui est du i, il signifie simplement que la requête doit ignorer la différence majuscule/minuscule.
(pourtant la requête fait une différence, => mauvais codage)

par Invité » 10 déc. 2007, 15:44

la syntaxe est elle la même pour une expression rég. en php ou javascript?

par Invité » 10 déc. 2007, 15:40

super, merci.
que représente le "i" passé en deuxième paramètre à la fonction?

par Berzemus » 10 déc. 2007, 14:54

element par element:

^[a-zA-Z] : Valide tout caractère qui n'est pas une lettre. (une fois)

Groupe (entre parenthèses):

([\.\-a-zA-Z0-9@])? : valide un point, un trait, une lettre (majuscule ou minuscule), un chiffre ou un arobase.

[a-zA-Z0-9]* : valide n'importe quel chaine contenant des chiffres et des lettres (maj,min), de longeur minimale 1.

Et encore un (*) pour répeter le groupe à l'envie..

Si j'ai bien compris, il s'agit d'une vérification d'émail.
C'est vrai qu'elle est coriace.. et mal faite/écrite. Non, y'a pas a dire, pour vérifier un émail, ça convient vraiment pas.

Tu devrais trouver d'autres exemples sur ce forum, en chercheant un peu. (de quelques lignes à quelques centaines, la validation d'émail étant un sujet épineux)

comprendre regexp

par Invité » 10 déc. 2007, 14:08

Bonjour à tous,

j'essaye de modifier un script qui effectue des contrôles formulaires en js.
L'expression régulière suivante est utilisée pour traiter les noms des inscrits:
var r = new RegExp("^[a-zA-Z](([\.\-a-zA-Z0-9@])?[a-zA-Z0-9]*)*$", "i");
Ce traitement ne me convient pas car il est trop strict, je voudrais élargir les possibilités de saisie.
Avant de modifier, il faut que je comprenne et là...j'ai commencé à bouquiner sur les expressions régulières mais ça va prendre du temps.

Quelqu'un saurait il ce que dit cette expression exactement?
Merci pour vos réponses.