Bonjour

Je souhaite contrôller la partie d'un e-mail qui précède le @

J'ai ceci

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
$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 )

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$atom   = '[/^[A-Za-z0-9._-]+$/]';   // caractères autorisés avant l'arobase

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
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";
	}