Page 1 sur 1

Imposer un format de saisie

Posté : 13 août 2019, 14:58
par Zaqen
Bonjour,

je cherche le format du genre :
elseif (!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$`',$email)) 
pour imposer un bon format de mail à renseigner.

J'aimerai faire la même chose mais pour 4 caractères de saisie :
1ère lettre alphabet majuscule
2ème : un chiffre
3ème : un chiffre
4ème : un chiffre

de sorte que si l'utilisateur saisie : CB02
erreur de format

Pouvez-vous m'aider ?

Re: Imposer un format de saisie

Posté : 13 août 2019, 15:11
par @rthur
Bonjour,

Voici une plateforme très pratique pour construire et tester ses expressions régulières :
https://regex101.com

Pour représenter un caractère de l'alphabet majuscule, c'est [A-Z]
Pour les chiffres, c'est [0-9]

A toi de jouer ! :-D

Re: Imposer un format de saisie

Posté : 13 août 2019, 15:36
par @rthur
A noter que ta regex pour vérifier que c'est bien un email est incomplète et fausse car il lui manque pas mal de cas :
- un "\" avant le point de l'extension pour bien indiquer que c'est un point et non pas la représentation de n'importe quel caractère
- la gestion des extensions de + de 4 caractères (.alsace, .amazon, .boutique, .bnpparibas... c'est en train de largement se développer depuis plusieurs mois)
- la gestion des noms de domaines accentués
- le caractère "+" qui est autorisé dans la 1ère partie d'une adresse email
Et je ne suis pas expert donc il y a probablement encore beaucoup d'autres cas manquant.

La bonne pratique pour vérifier qu'une adresse e-mail est correctement formée est d'utiliser une fonction PHP qui fait ça tout seul!
- filter_var https://php.net/filter_var
- avec le flag FILTER_VALIDATE_EMAIL : https://www.php.net/manual/fr/filter.fi ... lidate.php

Re: Imposer un format de saisie

Posté : 19 août 2019, 11:39
par Zaqen
Merci Beaucoup !
ca m'à aidé à résoudre.