hmmm.... det ser spændende ud, men den kræver lige lidt forklaring!!!
jeg har forsøgt at sætte dit script ind og det kører... MEN hvis jeg sætter searchword = "i" så bliver <i> også markeret - hvilket jeg netop ville undgå!
Jeg har også lidt problemer med at omdifinerer str. Jeg forestiller mig at sætte str = document.body.innerHTML - men det giver problemer. Er det ikke måden at gøre det på???
Synes godt om
Slettet bruger
10. april 2003 - 17:19#3
Min fejl! Lidt kommentarer!
<script language="javascript"> str = "For more <i>informatio ma n</i>, masee maChapter 3.4.5.1"; re = /[^<>]+|<.*?>/gi; found = str.match(re);//array af alt der enten er indhold af tag fra < til > //eller ikke indhold af tag... var newstr = ""; searchword = "i" //søge ordet //searchregexp: Finder alle hændelser af searchword var searchregexp = new RegExp(searchword ,"gi"); for(i=0;found[i];i++) { //Hvis den først karakter ikke er "<" (start på tag) if(found[i].charAt(0)!="<") { document.write(found[i].replace(searchregexp, "<b>" + searchword + "</b>")); //Markerer søgeordet } else { //Markerer ikke søgeordet document.write(found[i]); } } </script>
re = /[^<>]+|<.*?>/gi; "[^<>]+" - alle karakterer undtagen "<" og ">" en eller flere gange | eller <.*?> - < [ikke ny linie][alle karakterer 0 eller flere gange]> gi søg på alle matches, ignorer CASE
RegExp(searchword ,"gi"); <--- opretter RegExp på mønstret searchword, "gi" betyder det samme som ovenover!
Jeg vil lægge koden fra regin i en function HighlightText() som jeg så vil kalde fra body - onLoad="HighlightText()"... siden skal herefter viser normalt incl. diverse highlights....
hmmmm... HJÆLP
Synes godt om
Slettet bruger
11. april 2003 - 13:23#8
Nedenstående virker fint for mig... men du skal nok sikre dig på en eller anden måde highlight ikke går ind i mellem <script> og </script>
<html> <head> <title>btwtag</title> <script language="javascript"> str = "For more <i>informatio ma n</i>, masee maChapter 3.4.5.1"; function highlight(str) { re = /[^<>]+|<.*?>/gi; found = str.match(re); var newstr = ""; searchword = "i" var searchregexp = new RegExp(searchword ,"gi"); var newstr=""; for(i=0;found[i];i++) { if(found[i].charAt(0)!="<") { newstr += found[i].replace(searchregexp, "<b>" + searchword + "</b>"); } else { newstr += found[i]; } } return newstr; } </script> </head> <body> <input type="button" name="markup" value="markup" onclick="document.body.innerHTML=highlight(document.body.innerHTML);"/> <i>fasdjlæeuyiowe</i> dfasjkl asdfn,sfasdiopd ewruop asdfåø isdf afsdnm,. dfsalææl <i> sfad asfafsddlæ </i>fasdweriop </body> </html>
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.