Modificering af regexp replace funktion
Hi E,Følgende funktion anvender jeg til markering af søgeord:
Function findSoegeord(sTekstDerSoegesI)
Dim oRegExp
Dim oArray
Dim sNyTekst
Set oRegExp = New RegExp
oRegExp.IgnoreCase = True
oRegExp.Global = True
sNyTekst = sTekstDerSoegesI
If IsArray(Session("SearchArray")) Then
For Each oArray In Session("SearchArray")
oRegExp.Pattern = "(" & oArray & ")"
sNyTekst = oRegExp.Replace(sNyTekst, "<span style=""background-color: yellow"" title=""Markering kan fjernes ved klik på 'FJERN' til højre for søgeknappen"">$1</span>")
Next
End If
findSoegeord = sNyTekst
Set oRegExp = Nothing
End Function
Funktionen fungerer dog lidt for godt. Den erstatter helt ukritisk og altså også ord som fx indgår i en alt tekst til et billede eller en title tekst til et givent html element. Desuden erstatter den også & i html kodede karakterer (fx ø og ").
Er der nogen der kan hjælpe mig med at modificere funktionen, så den ikke erstatter tekst i html attributter og tegn i html kodede karakterer. Sidstnævnte kunne måske gøres med et andet regexp udtryk (noget i retningen af (\&\.+\;). Førstnævnte kan jeg ikke live greje hvordan man kunne ordne.
