Regex sur une plage de nombre

Résolu
cs_JLuc01
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
- 13 févr. 2012 à 22:37
cs_JLuc01
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
- 14 févr. 2012 à 09:29
Bonsoir,

Je cherche comment obliger l'utilisateur a introduire des nombres dans un textbox entre 100 et 400 par exemple (VB2008). Je crois que le Regex est bon, mais je n'en suis pas sur du tout.

Private Sub XTextBox_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles XTextBox.Validating
     If Me.XTextBox.Text.Length > 0 Then
         If Not System.Text.RegularExpressions.Regex.Match(Me.XTextBox.Text, "\d[100-400]").Success Then
             e.Cancel = True
         End If
     End If
End Sub


Quelqu'un peut-il me confirmer ou non si ce Regex est bon?
J'ai des problemes pour faire marcher ce code, mais cela vient peut-etre du code VB (a approfondir).
Pour l'instant, je voudrais savoir si ce Regex est bon.
Merci,

JLuc01

3 réponses

Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
14 févr. 2012 à 07:51
non, il est erroné.

les regex agissent au niveau des caractères...

il est possible de faire ce genre de test, mais il vaut mieux ne pas passer par une regex, sauf si on y est contraint.

castes ta valeur en int, fais une comparaison de valeur classique, ca vaudra mieux.

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
3
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
14 févr. 2012 à 08:57
pour info, la regex serait :

^(?:[1-3]\d\d|400)$

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_JLuc01
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
14 févr. 2012 à 09:29
OK, merci.
Je vais attaquer le probleme differement.

JLuc01
0