Bonjour, je cherche le moyen de vérifier la présence de 2 caractère "\" dans une variable string.
Ca va me servir à vérifier le format date, c'est pas nikel mais c'est le seul truc que j'ai trouvé.
Merci !
Bonjour, je cherche le moyen de vérifier la présence de 2 caractère "\" dans une variable string.
Ca va me servir à vérifier le format date, c'est pas nikel mais c'est le seul truc que j'ai trouvé.
Merci !
Regarde l'article sur les expressions régulières, elles te permettrons de faire un contrôle beaucoup plus pointu.
http://lgmorand.developpez.com/dotnet/regex/
tonString.IndexOf(...
mais que veut-tu faire pour les dates ??
Un simple IndexOf devrait en effet être suffisant
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Maios alors il ne saurra pas si les autres caractères sont bien des chiffres.Envoyé par Morpheus
La vérification par l'expression régulière devrait être queque chose comme
mais je ne l'ai pas testée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 System.Text.RegularExpressions.Regex myRegex = new Regex(@"[0-9]{2}[/][0-9]{2}[/][0-9]{4}") bool ok = myRegex.IsMatch(maDate);
merci, je regarde tout ça et je vous tient au courant
Alors voici la syntaxe (visual basic.net) à l'aide des expressions régulières :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Imports System.Text.RegularExpressionsVoila, en core merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 'Vérification du format de la date avec une expression reguliere Dim dateformat As New Regex("[0-9]{2}[/][0-9]{2}[/][0-9]{4}") If (dateformat.IsMatch(TxtDate.Text) = False) Then MsgBox("The 'Date of Visit' format is DD/MM/YYYY", MsgBoxStyle.Exclamation) Exit Sub End If
La prochaine fois, pense au tag Résolu
A+
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Il me semble qu'il y a une petite erreur. tu réduis pour les jours aux chiffres 0 à 3 mais tu 29 par exemple.
Idem pour le mois 07 par exemple.
Il me semble que ceci est plus cohérent.
Tu peux peut être encore poussé un peu
Code : Sélectionner tout - Visualiser dans une fenêtre à part "[0-3][0-9][/][0-1][0-9][/][0-9]{4}"
Le siècle serait alors obligatoirement 19 ou 20
Code : Sélectionner tout - Visualiser dans une fenêtre à part "[0-3][0-9][/][0-1][0-9][/][1-2][90][0-9]{2}"
oui merci, j'ai corrigé entre deux !
Le mieux c'est de faire une machine d'état transitions.
Heu il me semble que c'est ça
Bonjour
pourquoi faire compliqué :
On peut utiliser IsDate( objet) qui retourne True si 'objet' peut être transformé en date.
Non seulement cela teste les // mais aussi les chiffres et controle la validité de la date: (31/02/1945 n'est pas une date valide).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If IsDate("01/02/1945") Then MsgBox("date") Else MsgBox("pas date") End If
Simple Non?
Salut
Fonction VB6, donc non, mieux vaut faire du .NET :)Envoyé par toubib
Sinon, entre la regex, qui ne contrôle pas la validité des nombres (31/02/2005 ? :) et la méthode bourrin du DateTime.Parse( bleh ) dans un try/catch, je ne suis pas sûr du tout que la regex soit la plus rapide. Ni la plus simple. Ni la plus précise.
D'autant qu'avec DateTime.Parse, on peut gérer différentes cultures. Ce que ne font ni la regex, ni la fonction VB6-à-jeter-aux-ordures :)
Par contre je me demande toujours pourquoi ils n'ont pas mis d'équivalent à TryParse pour DateTime. Sans le paramètre out. Juste pour valider une chaîne...
Be wary of strong drink.
It can make you shoot at tax collectors, and miss.
Comme çà tout le monde est content
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Import System.Text.RegularExpressions '... Private Const DT_Format = "[0-3][0-9][/][0-1][0-9][/][1-2][90][0-9]{2}" '... Private Function IsDate(ByVal chaine As String) As Boolean Return New Regex(DT_Format).IsMatch(chaine) End Function '... If Not IsDate(TxtDate.Text) Then ....
Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles
Question amicale a Maniak:
Pour ceux qui font du VB.Net pourquoi rejeter systématiquement, avec grand dédain, les instructions de l'espace VisualBasic?
VB.Net c'est Framework+VB.Net(c# c'est probablement Framework+C#)
Dans les faits IsDate est simple pourquoi ne pas l'utiliser? en VB
Quelles règles poussent à utiliser impérativement des Classes du Framework?
Ne pas confondre l'Espace VisualBasic (.Net) et les classes de compatibilité VB6 qui sont de bricolage et qui, elles, ne doivent pas être utilisées.
Cordialement
Toubib
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager