Jeg kan godt se at mit spørgsmål er nærmest ikke-eksisterende, jeg forsøger at uddybe:
Jeg hiver nogle data med over på en side med fx:
side.asp?bla=1&blabla=2&SearchField=teksten
Som du så kan se fanger jeg så SearchField (teksten) med:
Request.QueryString("SearchField")
Så langt så godt. Nu kan jeg så udskifte "teksten" med fx. noget html kode e.lign. med regExp'en. Alt dette virker.
Problem: Har jeg flere parametre med i SearchField ( fx. SearchField=teksten teksten2 teksten3 i linket) kan jeg ikke få regExp'en til at virke.
Dit eks virker på sin vis, blot hiver den konsekvent sidste ord igennem regExp'en, istedet for dem alle som egentlig er målet. Det ligegyldigt om SearchField indeholder 3,4 eller flere parametre.
Så mit spørgsmål er egentlig blot, hvordan får jeg alle mine ord med :)
Det lyder lidt som om jeg er på glatis - særligt tidligere i "processen".
Jeg har bygget en lille søgefunktion der virker som følger:
1: søgeside - en form med method="post" indeholdende søgeord(ene) samt filtrering med en select, her AND OR eller EXACT
2: resultatside - lister artikler indeholdene søgte ord - her linker jeg så resultaterne til en detaljeside med "SearchField" i enden. Her er jeg bange for at jeg mister min filtrering..
3: detaljeside - selve artiklen hvori et søgeord indgår. Det er så her jeg bruger regExp til at formattere de faktiske søgeord i artiklen.
------------------------------
Jeg smider lige min kode fra resultatsiden (nr. 2 i processen) hvis det skulle kaste mere lys over mit problem.
SearchField = "ingenting" if(Request("SearchParam") <> "") then SearchField = Replace(Trim(Request("SearchParam")),"'","''")
'Check CompType, kør hvis All eller Any if(CompType <> "EXACT") then pE_advSearch_String = "WHERE " & SearchColumn & " LIKE '%" 'Splits søgning og gem i arrays SearchArray=Split(SearchField," ") for i = 0 to Ubound(SearchArray) if i > 0 then 'start sql hvis CompType AND/OR pE_advSearch_String = pE_advSearch_String & " " & CompType & " " & SearchColumn & " LIKE '%"& SearchArray(i) & "%'" else 'Slut sql hvis kun et ord pE_advSearch_String = pE_advSearch_String & SearchArray(i) & "%'" end if next
else pE_advSearch_String = "WHERE " & SearchColumn & " LIKE '%" & SearchField & "%'" end if %>
og
<% Dim rsSearch__pE_String If (pE_advSearch_String <> "") Then rsSearch__pE_String = pE_advSearch_String End If %>
Hvis den skal udskift flere søge ord i en streng så skal der laves et RegExp object før loopet. Så inde i loopet sættes et patten og du udføre søgningen på en streng...
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.