Toon posts:

[asp] Instr replace functie met uitzonderingen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik onderstaande code om een string te doorzoeken om de gevonden zoekstr op te lichten.
ASP:
1
2
3
4
5
6
7
Function Emphasize(fv_string,fv_term)
  If (fv_string<>"" and fv_term<>"") Then
    Emphasize=Replace(fv_string,fv_term,"<span id='zoekres'>"&fv_term&"</span>",1,18,1)
  Else
    Emphasize=fv_string
  End If
End Function

Nu kan fv_string ook a hrefs bevatten en zoals het nu gaat vervangt hij deze natuurlijk ook als de zoekstr voorkomt waardoor de link niet meer werkt, <span id='zoekres'> in een a href werk niet lekker :)
Ik zoek iets wat dit voorkomt.
fv_string bevat de volgende tags [pdf]...[/pdf] , [img]...[/img], [url]...[/url] Dit zijn de tags die een link bevatten.
Hoe kan ik voorkomen dat de functie Emphasize alles tussen deze tags niet meeneemt?
gr niek

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:32

gorgi_19

Kruimeltjes zijn weer op :9

Zijn regular expressions dan niet een betere manier? :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Ik denk dat je dan zult moeten overstappen op Regular Expressions. Zal even wat tijd in beslag nemen om de goede searchstring te maken, als je net zoals ik niet al te veel ervaring met RE's hebt, maar uiteindelijk is het wel vele malen flexibeler dan een gewone INSTR

Verwijderd

Topicstarter
FFrenzy, je zal helemaal gelijk hebben, echter moet er wel tijd zijn om er in te duiken. Dit is nu even niet het geval. Is wat ik wil niet mogelijk binnen de functie zoals ik hem hierboven heb staan?

Verwijderd

Verwijderd schreef op dinsdag 06 december 2005 @ 10:45:
FFrenzy, je zal helemaal gelijk hebben, echter moet er wel tijd zijn om er in te duiken. Dit is nu even niet het geval. Is wat ik wil niet mogelijk binnen de functie zoals ik hem hierboven heb staan?
De enige andere manier die ik zo zou weten zelf via code recursief de NIET te vervangen code er even uit filteren, maar daar ben je waarschijnlijk langer mee bezig dan met het uitzoeken van RE's.

Verwijderd

Topicstarter
ben al bezig...:)

Verwijderd

Topicstarter
Als ik de functie in de TS ombouw tot een RE:
SQL:
1
2
3
4
5
6
7
8
9
Function Emphasize(fv_string,fv_term)
  If (fv_string<>"" and fv_term<>"") Then
Set re = New RegExp
re.Pattern="&fv_term&"
Emphasize=re.Replace(fv_string,fv_term,"<span id='zoekres'>"&fv_term&"</span>",1,18,1)
Else
    Emphasize=fv_string
  End If
End Function

Oke dit gaat niet goed dus,
Als pattern wil ik natuurlijk de ingevulde zoekterm en alles wat een <a href>...</a> heeft overslaan.
I

[ Voor 76% gewijzigd door Verwijderd op 09-12-2005 10:41 . Reden: was een onduidelijk samenhangend verhaal ]

Pagina: 1