Bonjour
Je souhaite contrôller la partie d'un e-mail qui précède le @
J'ai ceci
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase
Mais je en souhaite pas que les ?!#%$ soit authorisés. J'aimerais juste authoriser les carcatère minuscule et masjuscule, le nombres, un point au plusieurs, un - ou un _ à condition que les point, -, _ ne se suivent pas.
Je ne connais pas trop les regex et j'ai commencer par ca (mais ca ne fonctionne pas
)
1 2
|
$atom = '[/^[A-Za-z0-9._-]+$/]'; // caractères autorisés avant l'arobase |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase
//$atom = '[/^[A-Za-z0-9._-]+$/]'; // caractères autorisés avant l'arobase
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
$regex = '/^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus mais
// séparés par des caractères autorisés avant l'arobase
'@' . // Suivis d'un arobase
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
// séparés par des points
$domain . '{2,63}$/i'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
if(!preg_match($regex, $email))
{
$code = -2;
$message = "[".$code."] Le format de votre e-mail n'est pas valide";
} |
Partager