regex de controle d validité d'un nom prenom...

Mammouth du PHP | 843 Messages

04 déc. 2007, 13:35

salut à tous :D

je souhaite mettre en place un expression regilière de controle de la validiter d'un nom ou prenom :-k

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 ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
AB
ViPHP | 5818 Messages

04 déc. 2007, 15:07

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.

Mammouth du PHP | 843 Messages

04 déc. 2007, 15:29

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 ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
ViPHP | 4039 Messages

04 déc. 2007, 16:23

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.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mammouth du PHP | 843 Messages

04 déc. 2007, 17:25

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 ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
AB
ViPHP | 5818 Messages

05 déc. 2007, 02:54

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 :wink:

Mammouth du PHP | 843 Messages

05 déc. 2007, 12:42

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:] :-k

sinon cela devrai suffir... je vait regarder pour ce qu'il en est de Nicolas 1er :lol:
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non: