Új hozzászólás Aktív témák

  • martonx
    veterán

    Igen, ezzel valóban a jókat jelöli ki, viszont az a gond továbbra is, hogy ha csupa kisbetűvel írom be a keresőbe a szót (pl. "máté"), akkor hiába szerepel az eredeti tartalomban nagy kezdőbetűvel (pl. "Máté"), a keresési találatokban átírja a keresésben megadott formára.

    Ha pl. a textContainer az, hogy "Alszik Máté, mert elfáradt.", a keresési kifejezés pedig az, hogy "mÁtÉ", akkor bár kijelöli a megfelelő sztringet, viszont ez lesz a megjelenített sztring:
    "Alszik mÁtÉ, mert elfáradt."

    Így csináltam meg, legalábbis itt járok benne:
    https://jsfiddle.net/j7qt4bva/

    Ha "normál kifejezésre" keresek (pl. "máté" vagy "apple"), tökéletesen működik, de rövidebbekre (pl. "a" vagy "az") végtelen cikulsba kerül valahol.

    (Amúgy sanszos, hogy erősen túlbonyolítva csináltam meg...)

    Az alapötlet az, hogy a keresett szó pozícióinak megkereséséhez csupa nagybetűssé alakítom a szöveget, amiben keresek, és a keresett szót is. Aztán ha megvan a pozíció (vagy pozíciók, több találatnál), akkor egy tömbbe szétvágom az eredeti sztringet a találat pozíciók végén. Majd ezeken belül megcsinálom az öleted alapján (RegExp "i") a <mark> tag hozzáadását úgy, hogy a már megszerzett pozíciók alapján kiszedem az eredeti karaktereket (így meglesz az a változat, hogy a kis- és nagybetűk az eredetiben vannak).
    Aztán ezeket a tömbelemeket összefűzöm újra, és ezt adom vissza.

    Csak valahol rövid(ebb) karakterszámnál végtelen ciklusba futok.

    Netán ha kaphatnánk működő konkrét példát html-el? Az mondjuk így ránézésre látszik, hogy amit tippre pár sor kóddal meg lehetne oldani, te 29 teleírt sorból oldottad meg.
    Szóval komolyabban bele se néztem, mert ez így biztos, hogy nem jó :D és nem működő példa híján, hogy az 5 sor helyett, 29 sorban hol a hiba....

Új hozzászólás Aktív témák