controleren of getal of tekst

Status
Niet open voor verdere reacties.

famlam

Gebruiker
Lid geworden
15 okt 2008
Berichten
416
Hoe kan ik controleren of de waarde van een input een getal of een string is?

Code:
if textbox.text = decimal or integer then 
'hoeft er niets te gebeuren
else
messagebox.show("Alleen getallen toegestaan")
textbox.text = ""
end if
werkt namelijk niet.

de resultaten zouden dus moeten zijn:
textbox.text = "3,85" --> true
textbox.text = "3,8,1" --> false
textbox.text = "--348" --> false
textbox.text = "84" --> true
textbox.text = "hallo" --> false
textbox.text = "-8,489" --> true

Waarom ik dit wil weten? omdat ik heb staan:
Dim invoervak as decimal = textbox.text / 62

Als iemand nu een van de 'false' uitkomsten (zie het lijstje) invoert, dan loopt het programma vast, met de foutmelding: De conversie van tekenreeks --3 naar type Decimal is ongeldig. En dit staat nogal slordig in een programma :).
 
Code:
    Private Sub TextBox_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox.LostFocus
        If not(IsNumeric(TextBox.Text)) Then
            MsgBox("Verplichte invoer getallen")
        End If
    End Sub
 
Laatst bewerkt:
Code:
    Private Shared Function IsNumeric_Regex(ByVal num As Object) As Boolean
        '[Ee] allow for exponents
        ' (\d+ \d*) (\d? \d+) allow for decimal value without number before decimal point
        Dim r As New Regex("(^[-+]?\d+(,?\d*)*\.?\d*([Ee][-+]\d*)?$)|(^[-+]?\d?(,?\d*)*\.\d+([Ee][-+]\d*)?$)")
        Return r.Match(num.ToString()).Success
    End Function
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan