Validation d'une entree dans un input dialog [Résolu]

Signaler
Messages postés
17
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
27 mai 2011
-
Messages postés
17
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
27 mai 2011
-
bonjour,

j'ai   creer un input dialog en SWT/Jface et je veux valider la valeur entrée par lutilisateur!!!!

je veux que l'utilisateur entre  des chiffres suivi soit de "ms"(milliseconde) soit "s" (seconde) sinn un message d'erreur apparait.exemple:
123ms  ---> OK  98697675 s ---> OK          9676986 msn --> erreur  

je ne connais pas de methode pour faire ces tests
merci de votre aide

6 réponses

Messages postés
17
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
27 mai 2011

c bon j'ai trouvé la reponse la reponse jai utilisé l'expression reguliere suivante:

(\\+)?([0-9]*\\.)?[0-9]+(ms|s)

Salut,

Et c'est quoi le code de ton "input dialog" ?
Il serait bon de nous le montrer pour qu'on puisse éventuellement t'aiguiller pour le contrôle de la saisie...

Cordialement,

...\ Dan /...
Messages postés
7
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
7 avril 2009

tu lis les deux derniers caracteres

tu commence par lire le dernier.
soit tu le fait avec .lenght puis tu enleve 1

ou tu passe par indexOf pour recuperer le s

tu fais ca dans une methode qui te renvoie un boolean .

  
Messages postés
17
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
27 mai 2011

merci pour vos reponses!!!

en fait c'est pas vraiment un input dialog c juste un champ texte(il ya biensur un ecouteur sur ce champs texte):

TextExpr = new Text(composite, SWT.SINGLE| SWT.BORDER);

j'ai reussi a faire valider le "ms" et "s" avec la methode  ".endsWith("ms")" que j'applique sur la valeur entree mais pour les chiffres qui precedent  le "ms" ou le "s" je  suis coincé.
je veux  que le "ms" ou le "s" soit precedé de chiffre et seulement de chiffre !!!!

merci encore
Messages postés
7
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
7 avril 2009

.getText().matches("[0-9]{1,9}")) 

[0-9] correspond aux caracteres autorisés

{1,9} correspond au nombre s de ses caractere autorisés (ici une chaine de 1 à 9 caracteres
Messages postés
17
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
27 mai 2011

merci sieurcash

j'ai combiner  ce que tu m'as di avec ce que j'ai trouvé mais ca ne marche pas =((

if(Textlang.getText().matches("[0-9]{1,9}")&&( (Textlang.getText().endsWith("ms")||(Textlang.getText().endsWith("s"))))){
 system.out.print("oui");
}else
 system.out.print("non");

ca m'afiche non mm qd j'ecris  par exmple "77 ms" qui doit etre bon normalement