controle saissie d'une adresse email - Java - Programmation
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). |
C'est n'importe quoi ces règles
Marsh Posté le 22-09-2009 à 22:52:36
masklinn a écrit : |
alors, peut tu me donner le prg concret s'il te plaît;pour contrôler valid email
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.
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
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
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
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 :
|
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
Marsh Posté le 24-09-2009 à 03:31:26
ReplyMarsh Posté le 24-09-2009 à 08:26:38
souk a écrit : m'est avis que ta regex respecte pas la RFC |
Gagné
De toute façon, le seul moyen de valider correctement une addresse e-mail, c'est de l'utiliser
Parce que vu la gueule de la regex RFC822…
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:
|
(?:\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:
|
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.
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.
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 : |
Je check 2 choses perso: il y a un "@" et il y a au moins un "." après le "@".
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 +
Marsh Posté le 24-09-2009 à 18:28:15
masklinn a écrit : |
+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
Marsh Posté le 24-09-2009 à 19:36:58
masklinn a écrit : |
en ecrivant cette ligne
|
"?:\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
Marsh Posté le 24-09-2009 à 22:31:22
ReplyMarsh Posté le 24-09-2009 à 22:52:37
cbeyls a écrit : J'ai écrit qu'il fallait doubler les backslashes... |
|
maintenant la ligne est souligné jusqu'au
"?:\\w|[\-_ |
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 :
|
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:
|
merci beaucoup,ça marche
je suis un debutant en java;explique moi s'il te plaît cette ligne
Marsh Posté le 25-09-2009 à 09:55:05
domxaline a écrit : |
Putain mais tu veux pas faire des recherches par toi même et réfléchir, un peu
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.
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
Marsh Posté le 25-09-2009 à 19:24:25
domxaline a écrit : |
http://www.siteduzero.com/tutoriel [...] e-1-2.html
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.
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
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