controle saissie d'une adresse email

controle saissie d'une adresse email - Java - Programmation

Marsh Posté le 22-09-2009 à 20:04:14    

Bonjour,
dans le java, je dois faire un prg de controle saisi email
ce prg doit être fait avec tableau et utilie Scanner
 
L'adresse e-mail doit avoir un caractère @ et un seul.
Ce caractère (@) doit être précédé d'au moins 3 caractères qui ne sont que des lettres de l'alphabet (pas de chiffre).
L'adresse e-mail doit avoir un caractère . et un seul.
Ce caractère (.) doit être suivi d'au moins 2 caractères qui ne sont que des lettres de l'alphabet (pas de chiffre).
Ce caractère (.) doit être précédé d'au moins 3 caractères qui ne sont que des lettres de l'alphabet (pas de chiffre).
Ce caractère (.) doit être placé avant le caractère @
 
s'il vous plaît, quelqu'un peut m'aider
j'ai ecrit le code comme ça
 
 
public class Toi
{
 public static void main(String[] args)
  {
 
   System.out.println("Entrez votre adresse email:" );
   Scanner sc=new Scanner(System.in);
   String email=sc.nextLine();
   String[] tab={email};
   for(int i=0;i<tab.length;i++)
   {
 
   }
 
après je ne sais pas comment continuer!!
 
aidez moi s'il vous plaît

Reply

Marsh Posté le 22-09-2009 à 20:04:14   

Reply

Marsh Posté le 22-09-2009 à 20:07:25    

domxaline a écrit :

Ce caractère (@) doit être précédé d'au moins 3 caractères qui ne sont que des lettres de l'alphabet (pas de chiffre).
L'adresse e-mail doit avoir un caractère . et un seul.
Ce caractère (.) doit être suivi d'au moins 2 caractères qui ne sont que des lettres de l'alphabet (pas de chiffre).
Ce caractère (.) doit être précédé d'au moins 3 caractères qui ne sont que des lettres de l'alphabet (pas de chiffre).
Ce caractère (.) doit être placé avant le caractère @


C'est n'importe quoi ces règles :/


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 22-09-2009 à 22:52:36    

masklinn a écrit :


C'est n'importe quoi ces règles :/


 
alors, peut tu me donner le prg concret s'il te plaît;pour contrôler valid email

Reply

Marsh Posté le 22-09-2009 à 23:42:47    

C'est une blague les règles? Ca n'a ni queue ni tête, ce ne serait même pas une adresse e-mail valide vu que le point doit être avant le @ et qu'il ne doit y en avoir qu'un seul, alors que dans toute adresse email on a au moins un . après le @ (exemple: toto@domaine.com)
 
Quoi qu'il en soit, tu dois utiliser une expression régulière pour valider l'entrée. Si tu emploies la classe Scanner, tu dois utiliser la méthode findInLine(pattern) où pattern est une expression régulière compilée. Si cette méthode renvoie null, l'adresse e-mail entrée est invalide. Sinon, la méthode renvoie l'adresse e-mail sous la forme d'une chaîne de caractère.
 
L'expression régulière dépend des règles de validation d'une adresse e-mail. Mais les règles que tu donnes là sont à mon avis incorrectes et n'ont pas de sens. À mon avis tu as déjà inversé la dernière règle: le point doit se trouver après le @. Mais techniquement dans une adresse e-mail on peut avoir plusieurs points après le @ et on peut même en avoir avant le @ aussi.


Message édité par cbeyls le 22-09-2009 à 23:46:23
Reply

Marsh Posté le 22-09-2009 à 23:50:34    

ok,laissons les regles que j'avais donnés
aide moi,donne moi un prg concret s'il te plait
pour valider email

Reply

Marsh Posté le 23-09-2009 à 14:32:13    

Tiens de la doc
 
http://prevert.upmf-grenoble.fr/Pr [...] ieres.html
 
en un mot, documente toi sur les expressions regulieres en java

Reply

Marsh Posté le 24-09-2009 à 02:30:51    

ou utilise java mail, normalement InternetAddress peut te servir
 http://java.sun.com/products/javam [...] dress.html

Reply

Marsh Posté le 24-09-2009 à 03:09:13    

Si cela peut t'aider, j'ai écrit une expression régulière qui valide une adresse e-mail quand j'ai écrit un serveur SMTP il y a quelques années. La voici:
 

Code :
  1. (?:\w|[\-_])+(?:\.(?:\w|[\-_])+)*\@(?:\w|[\-_])+(?:\.(?:\w|[\-_])+)*


 
Attention, en Java l'expression régulière doit être écrite entre guillements "" et donc les \ que j'ai écrit ci-dessus doivent être doublés.
 
Cette expression accepte tout type de nom de domaine valide, y compris les domaines locaux. Par exemple l'adresse suivante est permise: user@localhost

Reply

Marsh Posté le 24-09-2009 à 03:31:26    

m'est avis que ta regex respecte pas la RFC [:souk]

Reply

Marsh Posté le 24-09-2009 à 08:26:38    

souk a écrit :

m'est avis que ta regex respecte pas la RFC [:souk]


Gagné :o
 
De toute façon, le seul moyen de valider correctement une addresse e-mail, c'est de l'utiliser [:elessar53]  
 
Parce que vu la gueule de la regex RFC822… [:totoz]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-09-2009 à 08:26:38   

Reply

Marsh Posté le 24-09-2009 à 10:21:30    

cbeyls a écrit :

Si cela peut t'aider, j'ai écrit une expression régulière qui valide une adresse e-mail quand j'ai écrit un serveur SMTP il y a quelques années. La voici:
 

Code :
  1. (?:\w|[\-_])+(?:\.(?:\w|[\-_])+)*\@(?:\w|[\-_])+(?:\.(?:\w|[\-_])+)*


 
Attention, en Java l'expression régulière doit être écrite entre guillements "" et donc les \ que j'ai écrit ci-dessus doivent être doublés.
 
Cette expression accepte tout type de nom de domaine valide, y compris les domaines locaux. Par exemple l'adresse suivante est permise: user@localhost


 

(?:\w|[\-_])+(?:\.(?:\w|[\-_])+)*\@(?:\w|[\-_])+(?:\.(?:\w|[\-_])+)*


justement tu peux m'expliquer en details cette ligne s'il te plaît ,je suis perdu dedans
 
et encore ceci:


"^[a-zA-Z]+[a-zA-Z0-9\\._-]*[a-zA-Z0-9]@[a-zA-Z]+"+ "[a-zA-Z0-9\\._-]*[a-zA-Z0-9]+\\.[a-zA-Z]{2,4}$";

Message cité 1 fois
Message édité par domxaline le 24-09-2009 à 10:23:41
Reply

Marsh Posté le 24-09-2009 à 10:32:12    

domxaline a écrit :

je suis perdu dedans


Maintenant tu sais pourquoi il ne faut pas utiliser d'expression rationnelle quand il n'y en a pas besoin.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-09-2009 à 15:04:21    

Dans le bouquin "Mastering Regular Expressions" de Jeffrey F. Friedl, l'auteur cite une expression régulière qui valide une adresse e-mail en respectant à la lettre le standard et si je me souviens bien, elle fait plusieurs pages de son bouquin.
 
Tout dépend des pré-requis. L'expression que je donne là est un bon point de départ. Après on peut la modifier pour également accepter les caractères <> entourant l'adresse, ou forcer l'expression à se terminer par une extension de domaine valide du genre .fr, .com, .net, .be ou autres.
 
En gros l'expression que je cite accepte les groupes de lettres ou chiffres (\w) ou underscore ou tiret, séparés par des points, avant et après le "@". Certaines exceptions ne sont sans doute pas prises en compte. Il faudrait relire la RFC. Mais c'est déjà pas mal pour éliminer de nombreuses adresses invalides.

Reply

Marsh Posté le 24-09-2009 à 15:10:38    

cbeyls a écrit :

Dans le bouquin "Mastering Regular Expressions" de Jeffrey F. Friedl, l'auteur cite une expression régulière qui valide une adresse e-mail en respectant à la lettre le standard et si je me souviens bien, elle fait plusieurs pages de son bouquin.


http://ex-parrot.com/~pdw/Mail-RFC822-Address.html

cbeyls a écrit :


Tout dépend des pré-requis. L'expression que je donne là est un bon point de départ. Après on peut la modifier pour également accepter les caractères <> entourant l'adresse, ou forcer l'expression à se terminer par une extension de domaine valide du genre .fr, .com, .net, .be ou autres.
 
En gros l'expression que je cite accepte les groupes de lettres ou chiffres (\w) ou underscore ou tiret, séparés par des points, avant et après le "@". Certaines exceptions ne sont sans doute pas prises en compte. Il faudrait relire la RFC. Mais c'est déjà pas mal pour éliminer de nombreuses adresses invalides.


Je check 2 choses perso: il y a un "@" et il y a au moins un "." après le "@".


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-09-2009 à 15:46:35    

S'il faut qu'il y ait au moins un "." après le "@", il peut utiliser mon expression et remplacer le * final par un +

Reply

Marsh Posté le 24-09-2009 à 18:28:15    

masklinn a écrit :


Je check 2 choses perso: il y a un "@" et il y a au moins un "." après le "@".


+1 de toute facon les gens vont faire des erreurs et entrer une adresse valide qui n'est pas la leur ou qui n'existe pas et ca il n'y a qu'un seul et unique moyen de le verifier [:dawa]

Reply

Marsh Posté le 24-09-2009 à 19:36:58    

masklinn a écrit :


Maintenant tu sais pourquoi il ne faut pas utiliser d'expression rationnelle quand il n'y en a pas besoin.


 
en ecrivant cette ligne  


if(mail.matches("?:\w|[\-_])+(?:\.(?:\w|[\-_])+)*\@(?:\w|[\-_])+(?:\.(?:\w|[\-_])+" )*)


 
 

"?:\w|


souligné en mettant le souris sur la ligne il m'indique
invalide escape sequence (valid onces are   \b  \t  \n  \f  \r  \"  \'  \\ )
 
expliquez s'il vous plaît

Reply

Marsh Posté le 24-09-2009 à 22:31:22    

J'ai écrit qu'il fallait doubler les backslashes...

Reply

Marsh Posté le 24-09-2009 à 22:52:37    

cbeyls a écrit :

J'ai écrit qu'il fallait doubler les backslashes...


 


if(mail.matches("?:\\w|[\-_])+(?:\.(?:\w|[\-_])+)*\@(?:\w|[\-_])+(?:\.(?:\w|[\-_])+" )*)


 
maintenant la ligne est souligné jusqu'au

"?:\\w|[\-_

Reply

Marsh Posté le 24-09-2009 à 23:07:45    

C'est quand même pas compliqué, tu doubles les backslashes et tu mets des "" autour:
 

Code :
  1. if (mail.matches("(?:\\w|[\\-_])+(?:\\.(?:\\w|[\\-_])+)*\\@(?:\\w|[\\-_])+(?:\\.(?:\\w|[\\-_])+)+" )) {

Reply

Marsh Posté le 25-09-2009 à 09:23:11    

cbeyls a écrit :

C'est quand même pas compliqué, tu doubles les backslashes et tu mets des "" autour:
 

Code :
  1. if (mail.matches("(?:\\w|[\\-_])+(?:\\.(?:\\w|[\\-_])+)*\\@(?:\\w|[\\-_])+(?:\\.(?:\\w|[\\-_])+)+" )) {



 
merci beaucoup,ça marche
je suis un debutant en java;explique moi s'il te plaît cette ligne

Reply

Marsh Posté le 25-09-2009 à 09:55:05    

domxaline a écrit :


 
merci beaucoup,ça marche
je suis un debutant en java;explique moi s'il te plaît cette ligne


Putain mais tu veux pas faire des recherches par toi même et réfléchir, un peu [:pingouino dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-09-2009 à 13:11:31    

Je croyais que tu avais écrit cette ligne parce que tu savais ce qu'elle faisait. Elle teste si la chaîne de caractère stockée dans la variable "mail" est une adresse e-mail valide.

Reply

Marsh Posté le 25-09-2009 à 17:58:19    

cbeyls a écrit :

Je croyais que tu avais écrit cette ligne parce que tu savais ce qu'elle faisait. Elle teste si la chaîne de caractère stockée dans la variable "mail" est une adresse e-mail valide.


 
c'est vrai ce n'est pas moi qui ecris cette ligne
je veux comprendre cette ligne en details
tu peux m'aider

Reply

Marsh Posté le 25-09-2009 à 19:24:25    

domxaline a écrit :


 
c'est vrai ce n'est pas moi qui ecris cette ligne
je veux comprendre cette ligne en details
tu peux m'aider


http://www.siteduzero.com/tutoriel [...] e-1-2.html


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 25-09-2009 à 22:18:47    

L'expression entre guillemets est ce qu'on appelle une expression régulière, Google te renseignera mieux que moi à ce sujet.

Message cité 1 fois
Message édité par cbeyls le 25-09-2009 à 22:19:06
Reply

Marsh Posté le 25-09-2009 à 23:11:02    

cbeyls a écrit :

L'expression entre guillemets est ce qu'on appelle une expression régulière, Google te renseignera mieux que moi à ce sujet.


 
merci beaucoup, je vais jeter un coup d'oeil

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed