Avatar billede dkkarpen Nybegynder
23. september 2002 - 13:32 Der er 1 kommentar og
1 løsning

Marker et eller flere ord ved søgning

Den her kan markere et ord eller flere hvis de står i forlængelse af hinanden. Er der nogen der har et bud på hvordan man markerer alle ord selvom de ikke lige står i forlængelse af hinanden?
Avatar billede dkkarpen Nybegynder
23. september 2002 - 13:32 #1
<!--
    function doMark(str, word) {
        return str.replace(new RegExp(word, "gi"), "<span style='background: #ffff33'>"+word+"</span>")
    }

    function markWord(id, needle) {
        if ( document.getElementById ) {
            var elm = document.getElementById(id);
        } else if (document.all) {
            var elm = document.all[id];
        } else {
            return; // sorry, NS4 er ikke med.
        }

        // Initialiser variabler
        var out = "";
        var haystack = elm.innerHTML;

        if (haystack.indexOf('<') == -1 || haystack.indexOf('>') == -1) {
            // Hvis ikke vi finder et < eller et > i haystack, er der ingen grund til at lede efter noget. Vi kan parse alt
            out = doMark(haystack, theword);
        } else {
            // Ellers må vi parse igennem for tags
            while (haystack.indexOf('<') != -1 && haystack.indexOf('>')) {
                // Alt indtil < skal parses
                out += doMark(haystack.substring(0, haystack.indexOf('<')), needle);
                // Alt fra < til > skal ignoreres
                out += haystack.substring(haystack.indexOf('<'), haystack.indexOf('>')+1)
                // Fjern det parsede stykke fra "høstakken"
                haystack = haystack.substring(haystack.indexOf('>')+1,haystack.length);
            }
            // Husk den sidste lille rest efter sidste tag
            out += doMark(haystack, needle);
        }

        // Skriv resultatet til browseren
        elm.innerHTML = out;
    }
//-->
</script>
Avatar billede dkkarpen Nybegynder
31. oktober 2002 - 19:01 #2
Jeg fandt en løsning ved at at opbygge et array. Løbe det igennem og dermed opbygge en streng med flere replacements.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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