Expression régulière Acces pb syntaxe

Fermé
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 - 22 juin 2008 à 18:16
 yop - 15 janv. 2009 à 18:45
Bonjour,

Je cherche à vérifier si un nom rentré dans un formulaire est correct (c'est à dire qu'il ne contient pas de caractères qui n'ont pas leurs places comme les caractères spéciaux, les chiffres...).

Je rencontre un problème lors de la définition de la proprété pattern qui permet de créer l'expression régulière

Comment puis-je faire pour que vérifier que mon nom contient bien des caractères alpabétiques et exclure les chiffres ?

J'avais commencé avec cela mais je n'arrive pas à compléter :

reg.Pattern = "([a-z]{1,}[^0-9]{1,})"

Pouvez-vous m'aider ???

Merci d'avance
A voir également:

3 réponses

gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
22 juin 2008 à 18:19
[a-zA-Z]+
0
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
22 juin 2008 à 18:21
Ok merci et peux-tu m'expliquer ce que cela signifie ?

Je pense que cela veut dire : n'importe quelle caractère entre a et z minuscule et A et Z majuscule qui se répète de 1 a plusieurs fois c'est bien cela ?

(petite question : la syntaxe des expressions régulières est-elle commune à tous les langages ??)

merci
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
22 juin 2008 à 18:48
La sémantique décrite est exactement ça... ;)
Entre les langages la syntaxe des ER peut varier. Mais en gros c'est à peu pres pareil (y a quelques trucs en plus ou en moins ou parfois il faut proteger certains caractère avec un anti-slash par exemple).
Je t'ai donné l'expression régulière théorique (telle qu'elle devrait être dans tout les langages). Je glisse en passant que Perl est le meilleur langage pour les ER ;)
0
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
22 juin 2008 à 21:53
OK merci

Et comment puis-je faire pour faire en sorte d'exclure les caractères numériques dans la chaîne ? Parce que là j'ai :

[a-zA-Z]+[^0-9]+ mais ça n'exclue pas les caractères numérique dans la chaîne suivante : Nico45las

Pouvez-vous m'aider ?

Merci d'avance...
0
il suffit de matcher en boucle uniquement [a-zA-Z] car là exclure les nombres veut dire "s'il y a des nombres, alors ça ne match pas";
boucler sur ça donnera des resultats avec uniquement des lettres. tous les autres caractères seront exclus.
Hop en cadeau un bout de code pour faire tout ça en php :

while(eregi($pattern,$string,$regs)) {
// effacement des champs reconnus
$string = eregi_replace($regs[0],"",$string);
//ensuite faut utiliser les données récupérés :
$temp=$regs[1-2-3-etc]; //ici il faudra prévoir un petit quelque chose pour récupérer les bonnes valeurs et le tour sera joué
}
0