Bonjour
Je souhaite contrôler le chaîne de caractère saisie dans un edit est une adresse mail.
Bonjour
Je souhaite contrôler le chaîne de caractère saisie dans un edit est une adresse mail.
sur "delphi check mail", premier lien : Check e-mail address - Internet - Tips & Tricks - ....
;
Code : 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
19
20
21
22
23
24
25
26
27
28
29
30 function IsValidEmail(const Value: string): Boolean; function CheckAllowed(const s: string): Boolean; var i: Integer; begin Result:= false; for i:= 1 to Length(s) do if not (s[i] in ['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.']) then Exit; Result:= true; end; var i: Integer; NamePart, ServerPart: string; begin Result:= False; i:=Pos('@', Value); if i=0 then Exit; NamePart:=Copy(Value, 1, i-1); ServerPart:=Copy(Value, i+1, Length(Value)); if (Length(NamePart)=0) or ((Length(ServerPart)<5)) then Exit; i:=Pos('.', ServerPart); if (i=0) or (i>(Length(serverPart)-2)) then Exit; Result:= CheckAllowed(NamePart) and CheckAllowed(ServerPart); end
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Salut,
Version amélioré avec contrôle gauche droite
bye
Code : 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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 function ValidEMail(EMail: String): Boolean; function NbChar(const S : string; const CharACompter : char) : integer; var N : integer; begin result := 0; N := PosEx(CharACompter,S,1); // ici il génère message d'erreur while N <> 0 do begin inc(result); N := PosEx(CharAcompter,S,N+1); end; end; Const ValidGauche= ['0'..'9','a'..'z','A'..'Z','-','.']; // A toi de voir ce que tu autorise ou pas ValidDroite= ['0'..'9','a'..'z','A'..'Z','-','.']; // A toi de voir ce que tu autorise ou pas Var PartieGauche, PartieDroite: String; i: integer; Begin result := False; if NbChar(EMail,'@') <> 1 then exit; PartieDroite := Trim(Copy(EMail,Pos('@',EMAIL)+1,Length(EMail)-1)); if NbChar(PartieDroite,'.') <> 1 then exit; // On autorise qu'un seul '.' à droite for i := 1 to Length(PartieDroite) do if not (PartieDroite[i] in ValidDroite) then exit; PartieGauche := Trim(Copy(EMail,1,Pos('@',EMAIL)-1)); for i := 1 to Length(PartieGauche) do if not (PartieGauche[i] in ValidGauche) then exit; result:=True; // C'est passé end;
Pour info, aucunes des méthodes précités ne sont vraiment valides (http://fr.wikipedia.org/wiki/Adresse...Syntaxe_exacte)
J'avais une fonction IsValidEmail du même type que celle que présente ShaiLeTroll dans le code d'une appli. Ceci jusqu'au jour ou j'ai été confronté à un client qui ne pouvais pas envoyer de mails vers des adresses du genre o'flannagan@irish.ir. Chez les irlandais les adresses avec apostrophes semblent courantes
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager