Preg_match sur un champs nom prénom
Résolu
djflexlive
Messages postés
557
Date d'inscription
Statut
Membre
Dernière intervention
-
webjfr -
webjfr -
Bonjour,
Je souhaite vérifier le champs d'un formulaire à l'aide d'un pregmatch, mais cette fonction n'est pas évidente à utiliser au début.
La vérification doit être ainsi :
- $champs est le champ nom prénom
- $champs ne doit contenir des lettres et espaces, ainsi que les caractères - ' . (tiret/quote/simple point)
- La partie caractère ne doit pas se répéter consécutivement (éviter d'avoir O''Connor par exemple) ET si possible éviter un caractère après un autre (éviter O'-Connor)
Exemple :
Jean-Paul O'Connor >> Vrai
Jean'Paul O-Connor >> Vrai
Jean--Paul O'Connor >> Faux
Actuellement j'ai ceci , mais ca ne traite pas la partie caractère :
Merci.
Je souhaite vérifier le champs d'un formulaire à l'aide d'un pregmatch, mais cette fonction n'est pas évidente à utiliser au début.
La vérification doit être ainsi :
- $champs est le champ nom prénom
- $champs ne doit contenir des lettres et espaces, ainsi que les caractères - ' . (tiret/quote/simple point)
- La partie caractère ne doit pas se répéter consécutivement (éviter d'avoir O''Connor par exemple) ET si possible éviter un caractère après un autre (éviter O'-Connor)
Exemple :
Jean-Paul O'Connor >> Vrai
Jean'Paul O-Connor >> Vrai
Jean--Paul O'Connor >> Faux
Actuellement j'ai ceci , mais ca ne traite pas la partie caractère :
preg_match('`^[a-zA-Z]+$`',$_POST[$champ])
Merci.
A voir également:
- Preg_match sur un champs nom prénom
- Facebook recherche par nom et prénom - Guide
- Excel fusionner 2 colonnes nom prénom - Guide
- Comment retrouver quelqu'un sur facebook ? ✓ - Forum Facebook
- Comment retrouver une personne sans son nom et prénom - Forum Facebook
- Nom de l'adresse - Forum Réseaux sociaux
10 réponses
Salut,
Va faire un tour ici :
http://www.expreg.com/pregmatch.php
Et pense à regarder la partie PCRE aussi.
Va faire un tour ici :
http://www.expreg.com/pregmatch.php
Et pense à regarder la partie PCRE aussi.
Je suis sur ce site déjà pour essayer de comprendre comment faire, mais je ne trouve pas la solution ...
heu
en gros ca donne un truc du style :
[a-zA-Z](['-.]?[a-zA-Z]){1,25}
tu as aussi oublie le nombre de caractère.
Par contre, je ne sais pas comment ca se passe pour les espaces.
Tu ferais bien de séparer via 2 champs, le nom et le prénom.
Sinon, tu peux aussi utiliser les filter_var() de php5, il y a pas mal de clause prédéfini (regarde les constantes).
Pour les doublons de '' -- en expression regulière ça va être une merdouille pas croyable à faire
J'ai pas testé, mais tu pourrais faire des tests du style :
`^([a-zA-Z](([-.']{1})?[a-zA-Z])+){1,25}$`
Tu me tiendras au courant
en gros ca donne un truc du style :
[a-zA-Z](['-.]?[a-zA-Z]){1,25}
tu as aussi oublie le nombre de caractère.
Par contre, je ne sais pas comment ca se passe pour les espaces.
Tu ferais bien de séparer via 2 champs, le nom et le prénom.
Sinon, tu peux aussi utiliser les filter_var() de php5, il y a pas mal de clause prédéfini (regarde les constantes).
Pour les doublons de '' -- en expression regulière ça va être une merdouille pas croyable à faire
J'ai pas testé, mais tu pourrais faire des tests du style :
`^([a-zA-Z](([-.']{1})?[a-zA-Z])+){1,25}$`
Tu me tiendras au courant
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ca à l'air de bien fonctionner ta méthode ... Comme quoi y'a des dingues de regex faut croire :)
Si je pouvais, je te payerai un café ; heuresement que t'es passé par là pour me sauver la mise ;)
J'ai juste ajouté l'espace et les chiffres 0-9
`^([a-zA-Z0-9](([\ \-\.\']{1})?[a-zA-Z0-9])+){1,30}$`
Thanks a lot ! Résolu
Si je pouvais, je te payerai un café ; heuresement que t'es passé par là pour me sauver la mise ;)
J'ai juste ajouté l'espace et les chiffres 0-9
`^([a-zA-Z0-9](([\ \-\.\']{1})?[a-zA-Z0-9])+){1,30}$`
Thanks a lot ! Résolu
Re,
Je me doutais que ca fonctionnerait, sauf pour l'espace j'avais un doute sur l'echappement.
Sinon, tu fais un truc bien dégue la !
Pour faire plus propre
[a-zA-Z0-9] >> remplace par >> :alnum:
Oublie pas, il y a 2 [[
alnum s'est : alphanumérique
Ca fera une ligne plus joli à lire.
Je me doutais que ca fonctionnerait, sauf pour l'espace j'avais un doute sur l'echappement.
Sinon, tu fais un truc bien dégue la !
Pour faire plus propre
[a-zA-Z0-9] >> remplace par >> :alnum:
Oublie pas, il y a 2 [[
alnum s'est : alphanumérique
Ca fera une ligne plus joli à lire.
Désolé de t'embeter car j'y tate pas encore grand chose au regex mais ca devrait venir au fur et à mesure.
Tu pourrais pas me dire comment passer en preg_match cette syntaxe stp ?
<n>chiffres (1)tiret (5)chiffres (1)tiret (1)chiffre[de 1 à 5] (1)point extension |jpg|jpeg|gif|png
Exemple :
153-12345-4.png
Merci au passage si ton cerveau à envie de bosser ;)
Tu pourrais pas me dire comment passer en preg_match cette syntaxe stp ?
<n>chiffres (1)tiret (5)chiffres (1)tiret (1)chiffre[de 1 à 5] (1)point extension |jpg|jpeg|gif|png
Exemple :
153-12345-4.png
Merci au passage si ton cerveau à envie de bosser ;)
Salut,
Franchement, tu veux que je te le disse alors que j'estime que c'est une énorme connerie ?
heu
Le mieux, c'est de récupèrer le nom comme ça (pas tester hein !) et pour l'extension, tu le recuperes avec un getimagesize()
Parce que si l'image n'est pas conforme, ca retournera une erreur, et un peu de sécurité, ca ne fait jamais de mal !
En outre, tu récupèreras les infos pour l'affichage, les infos que W3C aime voir !
Voici ce qu'il faut :
Franchement, tu veux que je te le disse alors que j'estime que c'est une énorme connerie ?
heu
(:digit:{3})([-]{1})(:digit:{5})([-]{1})(:digit:{1})
Le mieux, c'est de récupèrer le nom comme ça (pas tester hein !) et pour l'extension, tu le recuperes avec un getimagesize()
Parce que si l'image n'est pas conforme, ca retournera une erreur, et un peu de sécurité, ca ne fait jamais de mal !
En outre, tu récupèreras les infos pour l'affichage, les infos que W3C aime voir !
Voici ce qu'il faut :
<?php if ($size = getimagesize($image)) { $taille_pour_url = $size[3]; // retourne width="120" height="80" $image_type = $size[mine]; // retourne le type mine // puis tu switch le image_type switch($image_type) { case 'image/gif': $extension = '.gif'; break; case 'image/jpeg': $extension = '.jpg'; break; case 'image/png': $extension = '.png'; break; default: header('Location:erreur.php'); } ?>
Salut webjr ;)
Je te remercies, mais j'avais bidouillé autre chose en attendant car j'ai été un peu trop rapide et mes besoins ne sont plus les mêmes.
Par ex. j'ai fais le pregmatch sur les 5-chiffres 1-Tiret 1-Chiffre de 1 à 5 sur chaque fichier d'un répertoire (avec readdir).
Pour l'extension, je l'ai zappé dans la recherche car dans les dossiers, il n'y a que des images ; mais il me fallait savoir quel type d'image pour pouvoir l'afficher dans une page.
Le getimagesize() je m'en suis servi également mais pour pouvoir centrer verticalement les images, en calculant le margin-top nécessaire.
Ca avances petit à petit ce que je suis en train de faire, je connaissait pas preg_match (jamais eu la nécessité pour le moment) mais c'est pratique même si ca reste complexe à créer niveau syntaxe !
Je te remercies webjr et j'espères que tu repassera sur un autre de mes posts à l'occasion si nécessaire ;)
Je te remercies, mais j'avais bidouillé autre chose en attendant car j'ai été un peu trop rapide et mes besoins ne sont plus les mêmes.
Par ex. j'ai fais le pregmatch sur les 5-chiffres 1-Tiret 1-Chiffre de 1 à 5 sur chaque fichier d'un répertoire (avec readdir).
Pour l'extension, je l'ai zappé dans la recherche car dans les dossiers, il n'y a que des images ; mais il me fallait savoir quel type d'image pour pouvoir l'afficher dans une page.
Le getimagesize() je m'en suis servi également mais pour pouvoir centrer verticalement les images, en calculant le margin-top nécessaire.
Ca avances petit à petit ce que je suis en train de faire, je connaissait pas preg_match (jamais eu la nécessité pour le moment) mais c'est pratique même si ca reste complexe à créer niveau syntaxe !
Je te remercies webjr et j'espères que tu repassera sur un autre de mes posts à l'occasion si nécessaire ;)
AH bah si tu veux me revoir faudrait peut être respecter mon pseudo, parce que tu en détruis le sens !
web pour webmaster
jfr pour jfronline
Mais c'est vrai que les expressions regulière c'est génial, mais c'est pas si compliquer que ça !
Par contre, quand tu montres ton code aux gens, tout de suite sa fait pro !
C'est pour ca que les gens les aiment !
web pour webmaster
jfr pour jfronline
Mais c'est vrai que les expressions regulière c'est génial, mais c'est pas si compliquer que ça !
Par contre, quand tu montres ton code aux gens, tout de suite sa fait pro !
C'est pour ca que les gens les aiment !