Avatar billede jansangill Nybegynder
11. marts 2008 - 00:22 Der er 2 kommentarer og
1 løsning

Baggrundsfarve på søgte ord

Hej

Jeg har dette her:

Function highlight(strInput,findStr)
  Set objReg = New RegExp
  objReg.Global = true
  objReg.IgnoreCase = True
  objReg.Pattern = "("&findStr&")"
  highlight = objReg.Replace(strInput, "<font color=""red"">$1</font>")
  Set objReg = Nothing
End Function

Den funktion virker "OK" i min søgefunktion, men problemet ligger i at når jeg fritekst søger, så finder den ikke det hvis ordet ikke er der eksakt.

Et eksempel:

hvis vi har denne sætning: "Lorem ipsum doloris loo"

Så når jeg søger på f.eks: "lorem doloris" vil jeg gerne have at den sætter bg på både lorem og doloris, men som det er nu, så sætter den kun bg på hvis jeg søger på dette:"Lorem ipsum"


Håber mit spørgsmål er forståeligt nok, ellers bed mig om at uddybe.

På forhånd tak for hjælpen.
Avatar billede nielle Nybegynder
11. marts 2008 - 06:50 #1
Hvis du bruger dette mønster i stedet:

(lorem|doloris)

så burde den farve begge ord.

Det er altså noget med at først køre en split på din søgestreng sådan at du får den delt op i enkelt ord, og så sætte dem sammen igen til en ny regexp-søgestreng:

str = "ord1 ord2 ord3 ord3"

- skal laves om til:

strRegex = "(ord1|ord2|ord3|ord3)"


Eller ved næremere eftertanke - di kan måske bare replace mellemrum mde '|' og så sætte en parentes rundt om det hele.
Avatar billede jansangill Nybegynder
11. marts 2008 - 08:08 #2
Nielle, ved nærmere eftertanke, så var det bare at replace mellemrum med "|".

Tak for en hjælpende hånd.Læg du et svar.
Avatar billede nielle Nybegynder
11. marts 2008 - 08:27 #3
Svar :^)

Husk dog lige at tage højde for at folk måske skriver 2 eller flere mellemrum efter hinanden.

Hvis du skal søge på hele ord, så skal der også en \b i begge ender:

strRegex = "\b(ord1|ord2|ord3|ord3)\b"
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