Avatar billede para7 Nybegynder
16. september 2004 - 16:44 Der er 11 kommentarer og
2 løsninger

Undersøge om karakter gentages i VB

Jeg har en aspx side hvor jeg laver noget vb script mellem noget html.
Jeg har en Request.Url.Host mulighed hvor jeg gerne vil finde ud af om det er et subdomæne som x.xxx.xx

Hvad med at tælle punktummer? Eller er der en bedre måde?

If [subdomæne] Then

End If
Avatar billede jpvj Nybegynder
16. september 2004 - 16:48 #1
tælle punktummer lyder som den rigtige løsning. :-)
Avatar billede arne_v Ekspert
16. september 2004 - 16:52 #2
måske noget regex ?
Avatar billede para7 Nybegynder
16. september 2004 - 17:28 #3
Tak. regex ved jeg ikke hvad er, men jeg kan vel tælle punktummer. Selvom det lyder lidt børnehaveagtigt, så er det vel noget med for next løkke og køre strengen igennem?
Avatar billede para7 Nybegynder
16. september 2004 - 17:34 #4
RegExp object er der noget der hedder i vb scripsproget i mit opslagsværk. Men..
Avatar billede para7 Nybegynder
16. september 2004 - 17:36 #5
Hvordan er det nu man løber en streng igennem?
Avatar billede arne_v Ekspert
16. september 2004 - 18:32 #6
Imports System

Module Main
    Function CountPeriods(s As String) As Integer
        Dim res as integer = 0
        Dim i As Integer
        For i = 0 To (s.Length - 1)
            If s.Chars(i) = "." Then
                res = res + 1
            End If
        Next
        CountPeriods = res
    End Function

    Sub Main()
        Console.WriteLine(CountPeriods("x"))
        Console.WriteLine(CountPeriods("x.x"))
        Console.WriteLine(CountPeriods("x.x.x"))
        Console.WriteLine(CountPeriods("x.x.x.x"))
    End Sub
End Module
Avatar billede arne_v Ekspert
16. september 2004 - 18:40 #7
Eksempel på regex:

Imports System
Imports System.Text.RegularExpressions

Module Main
    Function IsSubDomain(host As String) As Boolean
        IsSubDomain = Regex.IsMatch(host, "[a-zA-Z0-9]*\.xxxx\.dk")
    End Function
    Sub Main()
        Console.WriteLine(IsSubDomain("yyy"))
        Console.WriteLine(IsSubDomain("xxxx.dk"))
        Console.WriteLine(IsSubDomain("aaa.xxxx.dk"))
        Console.WriteLine(IsSubDomain("bbb.ccc.xxxx.dk"))
    End Sub
End Module

(bemærk at xxxx.dk tester false p.g.a. den måde testet er lavet på)
Avatar billede para7 Nybegynder
16. september 2004 - 22:49 #8
subX = "xxxxxxx.xx"
If Len(subX) > (Instr(subX,".")+Instr(strReverse(subX),".")) Then
Response.Write("Det er et subdomæne")
Else
Response.Write("Det er et et almindeligt domæne")
End If

Det er nok til mit formål denne gang, men tak for inspiration. Vi kan dele pointene hvis du lige smider et svar arne v.
Avatar billede para7 Nybegynder
18. september 2004 - 11:53 #9
Tak begge to. Det gælder vel også om at spare på antal tegn når man koder, så selv med min beskedne asp.net erfaring, fandt jeg en løsning der fylder kun et par linjer på god gammel asp maner.
Avatar billede arne_v Ekspert
18. september 2004 - 17:38 #10
Da ASP.NET compiles og ikke fortolkes så betyder antal tegn intet.

Du kunne sagtens lave regex løsningen inline også:

subX = "xxxxxxx.xx"
If Regex.IsMatch(subX, "[^\.]*\.[^\.]*\.[^\.]*") Then
Response.Write("Det er et subdomæne")
Else
Response.Write("Det er et et almindeligt domæne")
End If
Avatar billede arne_v Ekspert
18. september 2004 - 17:39 #11
Ovenstående skulle svare til din kode.

Men jeg synes ikke at inline kode erkønt.
Avatar billede arne_v Ekspert
18. september 2004 - 17:39 #12
Og så missede jeg den med svar ...
Avatar billede para7 Nybegynder
19. september 2004 - 13:18 #13
Tak for den gratis lektion arne v

Det virker. Ja, jeg er af gammel asp vane glad for inline kode og det er da genialt med RegExp.
Jeg kan ikke forstå syntaksen. Jeg har ellers to siders forklaring på syntaksen, men har svært ved at hitte hoved og hale i det, men det kommer nok en gang :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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