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:
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:
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