Avatar billede cmau Nybegynder
20. november 2006 - 09:08 Der er 10 kommentarer og
1 løsning

regex til at finde ud af om den indeholder andet end tal og punkt

Hejsa Eksperter

Jeg har et problem. Vi har programmering i skolen. Vi snakkede ldit på klassen om hvordan vi kunne tjekke en streng om den indeholdte andet end tal og punktum. Vi vil altså have at hvis den fx indeholdte bogstaver eller tegn skal den udskrive en fejl og hvis den kun indeholder tal og punktum skal den fortsætte koden.
Avatar billede jensgram Nybegynder
20. november 2006 - 09:10 #1
Reg.Exp. "^[\d\.]+$" vil kun matche 0-9 og punktummer (min. 1 tegn, men rækkefølge m.v. er underordnet).

Kender desværre ikke til Reg.Exp. i VB...
Avatar billede sjh Nybegynder
20. november 2006 - 12:50 #2
Kan du ikke bare bruge IsNumeric()


Private Sub Command1_Click()
  If Not IsNumeric(Text1.Text) Then
    MsgBox "Du må ikke skrive bogstaver, kun tal!"
  End If
End Sub
Avatar billede cmau Nybegynder
21. november 2006 - 08:37 #3
sjh > Faldt selv over den funktion isnumberic, men hvad er Text1.Text, kan jeg bare skrive min strengs navn der?, fx mass_org
Avatar billede cmau Nybegynder
21. november 2006 - 08:41 #4
Det kan godt være det ikke lige der jeg har lavet en fejl, men kan ikke kører min kode. Jeg får følgende fejl:
Compile error:

Function call on left-hand side of assignment must return Variant or Object

Min kode:

Private Sub calculate_Click()
    'Definere de forskellige variabler.
    Dim mass_org As String
    Dim height_org As String
    Dim mass As Single
    Dim height As Single
    'Hvis en af felterne er tomme giv da fejl.
    If mass_org = "" Or height_org = "" Then
        MsgBox = "Du skal skrive din højde og vægt!"
    Else
        'Replace komma (,) med punktum (.).
        mass_org = Replace(mass_org, ",", ".")
        height_org = Replace(height_org, ",", ".")
        If Not IsNumeric(mass_org) = "false" And IsNumeric(height_org) = "false" Then
            MsgBox = "Du må kun skrive tal i felterne!"
        Else
            MsgBox = "Nu skal vi videre!"
      End If
    End If
End Sub
Avatar billede kabbak Professor
21. november 2006 - 08:46 #5
mass_org og height_org , hvad er det, du har defineret dem som string
Avatar billede cmau Nybegynder
21. november 2006 - 08:51 #6
Det to inputfelter fra mit userinterface altså 2 tekstbokse. Grunden til at de er string er at nogen folk skriver , i stedet for . så jeg ville senere have smidt deres værdier over i mass og height, som er single.
Avatar billede kabbak Professor
21. november 2006 - 09:55 #7
prøv at fjerne disse

Dim mass_org As String
Dim height_org As String

eller

Dim mass_org As Object
Dim height_org As Object
Avatar billede cmau Nybegynder
21. november 2006 - 12:36 #8
Så nu fik jeg det til at virke, men hvordan kan jeg få inuptet fra et tekst fejl ind i mass_org og height_org?

Private Sub calculate_Click()
    'Definere de forskellige variabler.
    Dim mass_org As String
    Dim height_org As String
    Dim mass As Single
    Dim height As Single
    'Hvis en af felterne er tomme giv da fejl.
    If mass_org = "" Or height_org = "" Then
        MsgBox "Du skal skrive din højde og vægt!"
    Else
        'Replace komma (,) med punktum (.).
        mass_org = Replace(mass_org, ",", ".")
        height_org = Replace(height_org, ",", ".")
        'Hvis en af tallene ikke kun er tal og punktum, giv da fejl.
        If Not IsNumeric(mass_org) = "false" And IsNumeric(height_org) = "false" Then
            MsgBox "Du må kun skrive tal i felterne!"
        'Ellers regner vi videre.
        Else
            MsgBox "Nu skal vi videre!"
      End If
    End If
End Sub
Avatar billede kabbak Professor
21. november 2006 - 12:41 #9
mass_org = text1.text
Avatar billede cmau Nybegynder
23. november 2006 - 16:13 #10
Har fået det hele til at virke, smider du svar?
Avatar billede kabbak Professor
23. november 2006 - 16:28 #11
et svar ;-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester