|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
Salut tout le monde,
voila je dois checker la validité d'un champ prénom. donc il ne dois pas contenir de numéro ni que caractères spéciaux mise à part le "-" pour un prénom composé. je pense que la meilleure méthode pour le faire c'est de faire un bon regex mais je ne sais vraiment pas comment le faire... est-ce que quelqu'un pourrait me donner un petit exemple ? pour le moment jai que sa lol jaimerai encore savoir comment lui dire que le trait d'union ne dois pas etre en début de chaine ni a la fin et qu'il accèpte les accent ? merci
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#2 | ||
|
Membre expérimenté
![]() Inscription : septembre 2006 Messages : 685 ![]() |
Essaye ça :
Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
salut !
merci mais sa ne fonctionne pas correctement ! si je met un "-" au début il dis que cest faux donc sa sa marche mais si je le met à la fin, il dis que cest juste ... donc il faut encore checker que si on le met a la fin, il renvoie false et si ya un accent ou un truc dans le genre il renvoie false aussi donc cest pas encore sa...
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#4 | ||
|
Membre expérimenté
![]() Inscription : septembre 2006 Messages : 685 ![]() |
Pour les accents, normalement alpha les inclus dedans donc je vois pas.
j'avais pas vu que tu voulais interdire le tiret en fin de chaine également. Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
sa marche mais moi pour ne-né jai false--- il accepte pas du tout les tiret...
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Inscription : septembre 2006 Messages : 685 ![]() |
Ah oui désolé, j'ai mis le + en fin de masque
C'est Par contre les chiffres seront également interdits avec ce masque. |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
merci mais tu es sur que [alfa] soit correcte ? parce que maintenant si je tape marie-noé il return true mais si ya qqch après, une simple lettre sa return false
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#8 |
|
Membre expérimenté
![]() Inscription : septembre 2006 Messages : 685 ![]() |
Ben oui
Si t'as un problème avec, au lieu de [:alpha:], utilise \w, mais ça revient au même. |
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
ouais ok mais cest pas normal que lorsque je tape marie-noél il revoie false alors que si je tape marie-noel il renvoie true non ?
il dois encore y avoir une tite erreur dans le regex a mon avis
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#10 |
|
Membre expérimenté
![]() Inscription : septembre 2006 Messages : 685 ![]() |
Je pense que ton problème est ailleurs, chez moi marie-noël renvoi true, donc les lettres accentuées sont bien prises en compte.
|
|
|
00
|
|
|
#11 | |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
Citation:
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
|
00
|
|
|
#12 | |||
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
ben voici un extrait de mon code ... je ne voit pas vraiment ou est le problème...
Code :
Citation:
Code :
$regexNom = '#^[^-][[:alpha:]-][^-]+$#';
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|||
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
ton regexp marche super !!
tu peux la tester en live ici : http://elbong.free.fr/regexotron/ Mais si ton code ne marche pas, faut peut etre voir ce qui arrive dans $value !! Peut être que c'est pas é mais é ??
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
00
|
|
|
#14 |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
hum ouais bizare... faut que check sa mais normalent cest un string parce que je crée cette variable en js de la maniere suivante :
Code :
var value = document.getElementById(mode).value; //oui oui cest bien du post qui arrive lol mais bon avant d'envoyé mon post je fais cest surement pour sa non ?
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#15 |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
hum cest a 99% sa ! parce que encode_URI fait que les caractères spéciaux sont transformés en séquences de signes ASCII.
donc je devrai faire utiliser la fonction decodeURI() avant de mettre $_post['value'] dans la variable $value cest bien sa ? ya t'il possibilité de décoder sa en php et non pas en js ? donc d'avoir la meme fonction que decodeURI() mais en php ?
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
decodeURI fait quoi ?
moi je serai toi je ferai le test regexp sur la value "nature" donc é et pas un caractère encodé ...
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
00
|
|
|
#17 | |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
Citation:
Ouais mais cest pas possible dans cas d'application de faire sa avant lol parce que cest 1200 lignes de code en ajax pour checker un gros formulaire et on px pas le faire avant d'avoir encoder $value lol
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
|
00
|
|
|
#18 |
|
Membre habitué
![]() Inscription : octobre 2006 Messages : 124 ![]() |
Bonjour,
Je viens relancer ce post, car je cherche aussi à tester la validité d'un prénom à l'aide d'une expression régulière et je suis confronté au problème suivant, les caractères accentués ne sont acceptés qu'en début ou fin de chaine. voici le contrôle que je fais : Code :
!ereg('^[^-][[:alpha:]-]+[^-]$', $prenom) benoit : true Jean-Paul : true émile : true Jérôme : false Jérô : false Jerô : true Marie-noë : true Marie-noël : false |
|
|
00
|
|
|
#19 |
|
Membre habitué
![]() Inscription : octobre 2006 Messages : 124 ![]() |
à force de torturer mon expression régulière, j'ai pu légérement avancer.
Les accents sont acceptés en début ou fin car [^-] signifie n'importe quel caractère à l'exception de "-". C'est donc un pas en avant pour trois pas en arrière, avec des caractères accentués en première ou dernière position ne m'interesse pas et en plus avec l'expression ci-dessus, je peux avoir des chiffres ou autres caractères en début ou fin de chaine. Donc je suis reparti sur une nouvelle expression : ca me semble meilleur que la précédente, mais je bute toujours sur les caractères accentués... Suis-je obligé de les inclure individuellement dans mon expression au risque d'en oublier ? [a-zA-Zéèçàùâêûîôäëüïö] |
|
|
00
|
|
|
#20 | |
|
Membre habitué
![]() Inscription : décembre 2006 Messages : 109 ![]() |
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com