Validation d'une entree dans un input dialog

Résolu
doudoubens Messages postés 17 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 27 mai 2011 - 6 avril 2009 à 00:30
doudoubens Messages postés 17 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 27 mai 2011 - 6 avril 2009 à 22:39
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

doudoubens Messages postés 17 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 27 mai 2011
6 avril 2009 à 22:39
c bon j'ai trouvé la reponse la reponse jai utilisé l'expression reguliere suivante:

(\\+)?([0-9]*\\.)?[0-9]+(ms|s)
3
Utilisateur anonyme
6 avril 2009 à 03:00
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 /...
0
sieurcash Messages postés 7 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 7 avril 2009
6 avril 2009 à 12:08
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 .

  
0
doudoubens Messages postés 17 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 27 mai 2011
6 avril 2009 à 12:40
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sieurcash Messages postés 7 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 7 avril 2009
6 avril 2009 à 14:04
.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
0
doudoubens Messages postés 17 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 27 mai 2011
6 avril 2009 à 16:46
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
0
Rejoignez-nous