[PHP] Syntaxe

Bonjour,

j'ai une petit fonction qui recherche si il n'y a pas de caractères interdits dans un e-mail, mais celle si m'interdit aussi les + que je souhaiterais autoriser dans les e-mail (du type autoriser blabla.tretre+moi@gmail.com )

if ( !eregi("(^[a-z])(\.|-|_)?([0-9a-z]){0,}(\.|-|_)?([a-z0-9]+)((\.|-|_)?([a-z0-9]+)){0,}@([a-z0-9\-]+)\.([a-z]{2,4}$)", $email1) ) 
{
	$a_renvoyer=utf8_encode("Saisir correctement l'e-mail");
}


Je dois avouer que je ne comprend pas grand chose à cette syntaxe.

Que dois-je rajouter ou enlever.

Merci beaucoup

3 réponses

  1. Merci.

    Je pose la question, car c'est un prestataire qui à pondu ce code, que je ne serais pas allé voir, si l'adresse du site envoyé dans l'e-mail n'était pas fausse.
    Et je suis bien content de ne pas être le seul à trouver cette syntaxe longue et compliqué pour ce qu'elle à a faire.
    1. essaye de comprendre ce que tu utilises avant de le mettre sur ton site.
      va voir le tuto sur le site du zéro qui explique les expression régulière (ou regex)
      (^[a-z])(\.|-|_)?([0-9a-z]){0,}(\.|-|_)?([a-z0-9]+)((\.|-|_)?([a-z0-9]+)){0,}@([a-z0-9\-]+)\.([a-z]{2,4}$)
      la traduction est :
      1) (^[a-z])
      la chaine commence par une lettre
      2) (\.|-|_)?
      Il doit y avoir 0 ou 1 fois un "." ou "-" ou "_"
      ainsi de suite.

      perso, je trouve ce code particulièrement long et inutile pour une syntaxe de mail.
      j'utilise celle-ci qui est plus simple a comprendre.
      ^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$
      1) ^[a-z0-9._-]+
      la chaine commence par au moins une lettre minuscule ou un chiffre ou "." ou "_" ou "-"
      2) @
      doit contenir ensuite un @
      3) [a-z0-9._-]{2,}
      pareil que 1 sauf qu'il doit au moins avoir 2 caractères.
      4) \.[a-z]{2,4}$
      ensuite on termine par un point et entre 2 et 4 lettres.

      Mais va voir des explication sur les regex ;)