...alltså igentligen så skulle det kunna stå vad som helst efter &-tecknet och ändå "ignoreras" så att säga.
ex. www.mff.se/nyhet.asp?Id=2646&vad_äter_bävern=snö
Function myQueryString(LinkName, Target)
Dim myMatch, Match
With New RegExp
.IgnoreCase = True
.Global = True
.Pattern = "[\?\&]([\w\d ]*)\=([\w\d ]*)"
Set myMatch = .Execute(LinkName)
End With
if myMatch.Count > 0 Then
For Each Match In myMatch
If LCase(Match.SubMatches(0)) = LCase(Target) Then
myQueryString = Match.SubMatches(1)
Exit For
End If
Next
End If
End Function
Response.write myQueryString("hej.asp?he=asd&bob=hej","he") ' Kommer att skriva ut 'asd'
Tack voigtann1...och ni andra!
Det var just en sådan qs-parser jag behövde.
En liten notis bara:
[\w\d ] är väl ekvivalent med [\w ] eftersom att \w innefattar även 0-9?! eller har jag fel?
(Mina tester talar för min simplifiering... :))
Ett "vilket tecken som helst" + sen " " 0 to Unlimited. Men om vi kapslar in det []
så är det något av de som är inne i [].
Exempel:
"a "
skulle den träffar hela meningen
medas:
"aa "
skulle den bara träffar
"a "
Citat från RegExBuddy:
Match the regular expression below and capture its match into backreference number 1 «([\w ]*)»
Match a single character present in the list below «[\w ]*»
Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
A word character (letters, digits, etc.) «\w»
The character “ ” « »