16. september 2004 - 16:44Der 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?
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?
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
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å)
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.
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.
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
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 :)
Synes godt om
Ny brugerNybegynder
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.