JS problem content replace – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

JS problem content replace – JavaScript, AJAX, jQuery – Fórum – Programujte.comJS problem content replace – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Vlákno bylo úspěšně vloženo.
Pokud sám přijdeš na řešení, nezapomeň ho sem přidat!
Jirka
~ Anonymní uživatel
305 příspěvků
2. 5. 2017   #1
-
0
-

Dobrý den, již si nevím rady a chtěl bych vás poprosit o pomoc. Mám aplikaci na videa a dnes začala generovat chybu, kdy se při načítání stránky zasekne prohlížeš a vyhodí chybu v souboru funcion.js a to na řádku, kde je funkce viz. níže. Problém dělá řádek: content = content.replace(/\s+\S*$\, "");

Po ukončení scriptu se stránka načte bez odkazů v slideru. Po odstranění S*$\ se script načte, ale bez odkazů, takže se vás chci zeptat, zdali se nedá upravit pouze toto nahrazování mezer. Zkouel další možn zápisy, ale bezvýsledně. Předem vám děkuj za pomoc.

(function ($) {
       $.fn.truncate = function (options) {
              if (!options) options = "...";
              return this.each(function (num) {
                     var height = parseInt($(this).css("height"));
                     var content = $(this).html();
                     while (this.scrollHeight > height) {
                           content = content.replace(/\s+\S*$\, "");
                           $(this).html(content + options);
                     }
              })
       }
})(jQuery);
Nahlásit jako SPAM
IP: 94.112.145.–
Kobi
~ Moderátor
+1
Věrný člen
2. 5. 2017   #2
-
0
-

V první části výrazu replace máš regulární výraz, ten vždy začíná a končí dopředným lomítkem. Aby ti fungoval, musel bys to tedy mít takto:

content = content.replace(/s+\S*$/, "");

Pravděpdobně ani tak není regulérní výraz v pořádku, záleží, jaký pattern se tam snažíš najít.

Nahlásit jako SPAM
IP: 80.188.34.–
Jirka
~ Anonymní uživatel
305 příspěvků
2. 5. 2017   #3
-
0
-

#2 Kobi
Bohužel mi to nepomohlo a nenapadá mě, jak pokročit. Napadá tě jěště nějaká varianta, jak to zjistit? Děkuji

Nahlásit jako SPAM
IP: 94.112.145.–
Kobi
~ Moderátor
+1
Věrný člen
2. 5. 2017   #4
-
0
-
Nahlásit jako SPAM
IP: 80.188.34.–
gna
~ Anonymní uživatel
1851 příspěvků
3. 5. 2017   #5
-
0
-

V podstatě to nahrazuje poslední "slovo" třemi tečkami dokud se to nevejde do požadované výšky.

Přestalo fungovat a nepomohlo je na hovno. Napiš co přesně to dělá a co je na tom špatně.

Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
3981 příspěvků
3. 5. 2017   #6
-
0
-

content = content.replace(/\s+\S*$\, ""); - tady schazi na konci lomitko
content = content.replace(/s+\S*$/, ""); - tady schazi lomitko u s
Neni znamy obsah content.
Ten vyraz by mel zmenit mezera(y) + posledni text bez mezery na 3 tecky. A pomoci while by to mel opakovat do te doby, nez bude vyska <= height. To je naprosto plytvani vykonem, kdybys mel treba 2 MB text. Navic, kdyz ten replace selze, tak ten while pobezi do nekonecna. Rozumnejsi by bylo spocitat pocet slov a omezit to na pocet slov. Pouzit princip insert to middle sortu. Vzit treba 1/2 slov, presahuje, nepresahuje. Nepresahuje, tak pridat 1/4, pak 1/16, 1/32 az se dostanes na jedine slovo.
 

Nahlásit jako SPAM
IP: 2001:718:2601:26c:74fe:8c...–
Jirka
~ Anonymní uživatel
305 příspěvků
3. 5. 2017   #7
-
0
-

#6 peter
Moc ti dekuji, pomohlo mi to a rad bych to upravil, jak mi radis, ale delam grafiku a kodovani, takze na tohle nemam zkusenosti. Jeste jednou dekuji a mejte pekny den, Jirka

Nahlásit jako SPAM
IP: 89.235.0.–
peter
~ Anonymní uživatel
3981 příspěvků
3. 5. 2017   #8
-
0
-

Vymluvy. Na forku se ocekava vlastni aktivita. Vse se da najit v google.

http://www.regexp.cz/
Dole je tabulka, celkem prehledne, kdyz vis, na co koukas.
\s neviditelné znaky (mezery, ale tez tabelatory a jine nepismenkove znaky a nesyntakticke, ktere nejsou videt)
\S jakýkoliv znak vyjma neviditelného (negace \s)
+ opakovani 1 az nekonecno
* opakovani 0 az nekonecno
^ ... $ zacatek a konec textu
/ ... / zacatek a konec reg vyrazu
A spravne by tam melo byt jeste m, mozna x a mozna i g a u, / ... /gm (sedy ramecek nahore "3. Modifikátory").
g ... global // ale protoze je tam $, tak global netreba
m ... multiline (kdybys tam dal treba "ahoj\nnazdar", tak skonci u ahoj, protoze tam konci radek \n)
u ... utf-8, pokud pouzivas utf-8
x ... rozsirena verze, to ted zrovna nevim

Nahlásit jako SPAM
IP: 2001:718:2601:26c:74fe:8c...–
peter
~ Anonymní uživatel
3981 příspěvků
3. 5. 2017   #9
-
0
-

Tou aktivitou jsem myslel to, ze pokud nemas snahu resit a jen zadavas ukoly, tak se na forku s tebou obvykle nikdo nebavi. Viz jina temata, kde treba vidis malo odpovedi :)

Nahlásit jako SPAM
IP: 2001:718:2601:26c:74fe:8c...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Js replace — založil netman92

Allow blocked content — založil bugisoft

C++ string replace — založil Maxiterit

String replace — založil Dagi

C++, PCRE a replace — založil Heart Breaker

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý