Expression régulière Acces pb syntaxe

Dédé86 Messages postés 690 Statut Membre -  
 yop -
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 2347 Date d'inscription   Statut Membre Dernière intervention   301
 
[a-zA-Z]+
0
Dédé86 Messages postés 690 Statut Membre 208
 
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 2347 Date d'inscription   Statut Membre Dernière intervention   301
 
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 690 Statut Membre 208
 
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
yop
 
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