Page 1 sur 1
regex de controle d validité d'un nom prenom...
Posté : 04 déc. 2007, 13:35
par BeRoots
salut à tous
je souhaite mettre en place un expression regilière de controle de la validiter d'un nom ou prenom
les conditions à respecter sont de detecter tout caractère blanc, et spéciaux à l'exeption de l'apostrophe simple (') et de l'espace ( )... la condition serai donc de valider tout ce qui est caractere de mot plus les accentuer plus l'apostrophe simple et l'espace si unique (deux espace = erreur; deux apostrophes simple = erreur).
j'ai essayer minte et minte chose mais rien ne fonctionne
si quelqu'un à une idée à me proposer

merci d'avance

Posté : 04 déc. 2007, 15:07
par AB
Avant d'aller plus loin, il me semble que tes conditions initiales sont trop strictes. Un nom composé peut avoir plus d'un espace. Quant à l'apostrophe, peut-être qu'une seule pourrait suffire jusqu'à ce qu'on trouve un contre exemple...
EDIT ma remarque vaut pour des "vrais" noms et prénoms. Si c'est pour des pseudo tu peux te permettre d'être moins large, bien sûr.
Posté : 04 déc. 2007, 15:29
par BeRoots
tu a raison les nom et prenom valid pourrai avoir plusieur espace mais il faudra donc penser à interdir deux espace à la suite
pour l'apostrophe, y'a qu'a ce dire que ce sera identique à l'espace (donc plusieur possible mais pas deux consecutive)
Ps pour ce qui est des ' ', je controle dejà cela pour detecter les tentatives d'injection donc pas besoin de voir trop loin non plus...(genre egalité de valeur vide style ' ' == ' ')
donc si quelqu'un à une idée d'expression reguliere pour les condition suivante à respecter:
- - autoriser les caractères de mots et caractères accentués
- interdire les chiffres
- autoriser les apostrophes simples mais interdire les apostrophes simples consecutives
- autoriser les espaces mais interdire les espaces consecutifs
Merci d'avance

Posté : 04 déc. 2007, 16:23
par Berzemus
salut. Excuse moi, mais quel est le but ? ces règles n'empêcheront pas de taper XJHZ kjhqjdhA, sauf si le problême est ailleurs.
Et si tu nous explique ou le problême se situe, on pourra mieux guider.
Posté : 04 déc. 2007, 17:25
par BeRoots
c'est juste pour cibler au maximum la fiabilité des informations saisient dans mes formulaires
à moins qu'il exist des dictionnaire de prenom et nom, ce qui m'étonne un peu mais bon...
donc si quelqu'un a une idée sur la regex, sa serai genial
merci d'avance

Posté : 05 déc. 2007, 02:54
par AB
Caractères alphabétiques + espace + '
$var = "Be Root's";
if (preg_match('#^[[:alpha:] \']+$#',$var)) echo 'YES';
http://www.phpfrance.com/tutoriaux/inde ... regulieres
Note qu'en interdisant les caractères numériques tu interdis ton site à Nicolas 1er

Posté : 05 déc. 2007, 12:42
par BeRoots
Merci AB

c'est à peu pret ce que j'avait essayer de faire mais j'avait des erreur de classes POSIX quand à l'utilisation de [:alpha:]
sinon cela devrai suffir... je vait regarder pour ce qu'il en est de Nicolas 1er
