Jens Gyldenkærne Clausen skrev:
> [ 
http://www.notestips.com/80256B3A007F2692/1/NAMO5RNV2S#17 ]
>
> - den bruger javascript regex, men tager netop højde for
> problemet med attributter. Den bør kunne omskrives til
> vbscript/regex, men ellers kan du jo bruge den som den er.
Nu blev jeg nysgerrig - og endte med selv at omskrive den til asp-
kode. Funktionen herunder virker som ønsket. Bemærk at man godt kan
søge på flere ord ad gangen (de skal så adskilles med |):
Function markWord(S, aWords)
         ' Extract HTML Tags
        Dim re, vstrippedHTML, i, MatchArr, vTemp
        Set re = New RegExp
         re.Pattern = "<[^<>]*>"
           re.IgnoreCase = True
           re.Global = True
         ' Replace HTML tags
         Set MatchArr = re.Execute(S)
         vStrippedHTML = re.replace(S,"$!$")
         
         ' alert(vStrippedHTML);
         
         ' Replace search words
         Dim re2
         set re2 = New RegExp
         
         re2.Pattern = "(" + aWords + ")"
           re2.IgnoreCase = True
           re2.Global = True
         vTemp = re2.replace(vStrippedHTML,"<em
class=""highlight"">$1</em>")
         
         ' Reinsert HTML
         For i = 0 To MatchArr.Count -1
            vTemp = Replace(vtemp, "$!$", MatchArr(i),1,1)
         Next
         markWord = vTemp
End function
Teknikken er at fjerne alle html-elementer (incl. attributter) fra
strengen før man fremhæver søgeordene. Til sidst sættes html-
elementerne så ind igen. De to sidste argumenter til Replace-linjen
sikrer at vi kun erstatter én forekomst af $!$ ad gangen.
-- 
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på 
http://usenet.dk/netikette/citatteknik.html