IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

validation regex jtextfield


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 34
    Par défaut validation regex jtextfield
    bonjour ,

    je dois verifier que les champs ne sont pas vides anvant de faire un update dans la BDD , qu'il est possible qu'un des 2 champs de telephone soit vide , il y aussi une regex sur les champs du numero de telephone , il doit contenir des chiffres de 0-9 et contenir 10 caracteres

    tout va bien jusqu'a la verification de la regex des champs du telephone . comment signaler dans la regex que le champs peut etre vide ?

    voici une partie de mon code :

    Code java : 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    try {
    							ArrayList<String> liste = new ArrayList<String>();							
    							liste.add(ville);
    							liste.add(rue);
    							liste.add(email);
    							liste.add(prenom);
    							liste.add(nom);
    							liste.add(Integer.toString(numero));
    							liste.add(Integer.toString(cp));
    							String patternTelFixe="^[0-9]{10}$";
    							String patternTelMobile="^[0-9]{10}$";
    							String patternEmail = "^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\\.[a-z]{2,4}$";
    							boolean checkEmail = Pattern.matches(patternEmail, email);
    							boolean CheckTelFixe=Pattern.matches(patternTelFixe, telFixe);
    							boolean CheckTelMobile=Pattern.matches(patternTelMobile, telMobile);
    							// mise à jour de la base de données avec les nouvelles valeurs
    							// venant de la carte client
    							if ( checkFields(liste) && ( CheckEmptyField(telFixe) || CheckEmptyField(telMobile) )) {
    								if (checkEmail && CheckTelFixe && CheckTelMobile){
    									gestion.updateClient(client);
    								}else{
    									if (!CheckTelFixe) {
    										panelCarteClient.getEtTelFixe().setBorder(
    												new LineBorder(Color.RED));
    										javax.swing.JOptionPane.showMessageDialog(null,
    												"Ce champ n'est pas valide");
    									}
     
    								}
     
     
    							} else {
    								javax.swing.JOptionPane.showMessageDialog(null,
    										"Ce champ ne peut pas être vide");
     
    							}
     
    						} catch (Exception e) {
     
    							e.printStackTrace();
    						}
     
    					}
    				});

    lorsque le champ ne contient pas 10 chiffres , les bordures deviennent rouges mais quand j'essaie de remettre une bonne valeur dans le champ cela continue d'afficher que le champ n est pas valide

    les methodes pour la verif des champs vides :

    Code java : 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
    	private boolean CheckEmptyField(String field) {
    		if (!field.isEmpty()) {
    			return true;
    		} else {
    			return false;
    		}
     
    	}
     
    	private boolean checkFields(ArrayList<String> liste2) {
    		for (String field : liste2) {
    			if (!CheckEmptyField(field))
    				return false;
    		}
    		return true;
    	}

    merci d'avance

  2. #2
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Salut,

    comment signaler dans la regex que le champs peut etre vide ?
    Pourquoi le faire dans la regexp forcement ? Tu peux très bien effectuer ce teste avant de l'exécuter.

    Sinon pour la regexp.

    "^[0-9]{10}*$";
    L'étoile * signifie 0 ou plus, du-coup ça valide aussi si le champ est vide.

    Sinon tu peux faire

    "^[0-9]{10}{1,}$";
    Où {1,} signifie 1 ou plus ce qui t'empêche d'avoir une valeur vide.

    lorsque le champ ne contient pas 10 chiffres , les bordures deviennent rouges mais quand j'essaie de remettre une bonne valeur dans le champ cela continue d'afficher que le champ n est pas valide
    A quel moment tu effectues la vérification ? Car la on voit tes tests mais on ne sait pas quand est-ce qu'ils sont appelés.


    Remarques :

    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
     
    private boolean CheckEmptyField(String field) {
    	if (!field.isEmpty()) {
    		return true;
    	} else {
    		return false;
    	}
     
    }
     
    private boolean checkFields(ArrayList<String> liste2) {
    	for (String field : liste2) {
    		if (!CheckEmptyField(field))
    			return false;
    	}
    	return true;
    }
    Peut se simplifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private boolean checkFields(ArrayList<String> liste2) {
    	for (String field : liste2) {
    		if (!field.isEmpty())
    			return false;
    	}
    	return true;
    }
    Déjà il faut eviter décrire des trucs comme if( booleen == vrai ) return vrai else return faux autant retourner la valeur du booleen directement Du-coup ta fonction CheckEmptyField() devient inutile.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 34
    Par défaut
    merci tout d'abord pour ta réponse

    l'ajout de l'étoile me renvoie cela:

    java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 10
    ^[0-9]{10}*$

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 34
    Par défaut
    alors voici la solution :

    "^([0-9]{10})|(.{0})$";
    les pattern donnés plus haut ne pouvaient pas fonctionner

    "^[0-9]{10}*$";
    car tu mets 2 répétitions à la suite pour le caractère, et renvoie une erreur

    et

    "^[0-9]{10}{1,}$";
    idem

    merci quand même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] [Validation] problème avec le validator Regex
    Par mougeole dans le forum Symfony
    Réponses: 0
    Dernier message: 05/09/2011, 16h53
  2. [Pattern][Regex] vérifier que mon email est valide
    Par anitshka dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/05/2011, 13h03
  3. Validator : regex +message
    Par sylverspoon dans le forum Zend_Form
    Réponses: 4
    Dernier message: 30/07/2009, 16h01
  4. castor validation regex jakarta
    Par jilham dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 18/12/2007, 10h13
  5. Réponses: 5
    Dernier message: 11/01/2007, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo