Javascript regulární výrazy   otázka

JavaScript

Dobrý den,

potřeboval bych pomoct s javascriptem, který by vyhldával v textu určitá slova a obaloval je do určitých tagů (jako u intextové reklamy jen s tím rozdílem, že by to nebyla reklama, ale vysvětlivky). Můj kód je takový:

        function bubliny(slovo, txt, nadpis, popis) {
            for (ii = 0; ii < vzor.length; ii++)
                if (isShoda(vzor[ii][1], slovo) >= 0)
                    break;

            if (ii >= vzor.length) {
                return;
            }

            var arndx = 0;
            var ar = new Array();

            var theHTML = document.getElementById(txt).innerHTML;
            for (jj = 1; jj < 8; jj++) {
                var word1 = Sklon(jj, ii, slovo);
                var word2 = Sklon(jj + 7, ii, slovo);
                if (!poleMa(ar, word1) && word1!="?") {
                    var regExp = new RegExp("(<[^>]*>)|(\\b" + word1.replace("/([-.* ?^${}()|[\]\/\\])/g","\\$1") + ")", "ig");
                    theHTML = theHTML.replace(regExp, function(a, b, c){
                       return (a.charAt(0) == "<") ? a : vytvorbublinu(c, nadpis, popis);
                    });
                    ar[arndx++] = word1;
                }
                if (!poleMa(ar, word2) && word2 != "?") {
                    var regExp = new RegExp("(<[^>]*>)|(\\b" + word2.replace("/([-.* ?^${}()|[\]\/\\])/g","\\$1") + ")", "ig");
                    theHTML = theHTML.replace(regExp, function(a, b, c){
                       return (a.charAt(0) == "<") ? a : vytvorbublinu(c, nadpis, popis);
                    });
                    ar[arndx++] = word2;
                }
            }
            document.getElementById(txt).innerHTML = theHTML;
        }

Tuto funkci volám pokaždé, když chci přidat vysvětlivku k nějakému slovu. Funkce vytvorbublinu vrátí zpět HTML pro vysvětlivku, které je něco jako <a title="popis">původní slovo</a>. Také používám jemně upravený skloňovací engine z http://pteryx.net/sklonovani.html pro podchycení 90% výskytu klíčových slov (reprezentován funkcí Sklon).

Všechno funguje dobře, mám ale problém s regulárním výrazem. Potřebuji, aby nedošlo k vícenásobnému obalení u výrazů a zničení ostatních HTML tagů (odkazy, obrázky, seznamy). Sám se moc v regulárních výrazech nevyznám a moc by mi pomohlo, kdyby mi někdo poradil.

Můj aktuální výraz je: "(<[^>]*>)|(\\bAHOJ)"

Děkuji moc za vaše reakce...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback