Úloha 4 – Metoda .replace() a globální nahrazení textu
| Sitio: | Moodle ZČU |
| Curso: | Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný) |
| Libro: | Úloha 4 – Metoda .replace() a globální nahrazení textu |
| Imprimido por: | Nepřihlášený host |
| Día: | domingo, 18 de octubre de 2026, 07:34 |
Úvod do úlohy
Velmi často potřebujeme upravit text tak, aby místo určité části obsahoval něco jiného. Může jít o jednoduché nahrazení jednoho slova, opravu překlepu nebo hromadnou výměnu všech výskytů určitého znaku. V JavaScriptu k tomu slouží metoda replace(), která je velice mocná – umí provést jednoduché nahrazení i složité úpravy za pomoci regulárních výrazů. Porozumět rozdílům mezi základním a „pokročilým“ použitím je důležité, protože díky tomu dokážeme snadno zvládnout i složité textové transformace.
Teorie a principy
-
Základní použití
replace()-
První argument je hledaný řetězec.
-
Druhý argument je náhrada, kterou chceme vložit.
-
Nahrazuje pouze první výskyt hledaného řetězce.
-
-
Globální režim (
g)-
Pokud potřebujeme nahradit všechny výskyty, musíme použít regulární výraz s příznakem
g.
-
-
Case-insensitive režim (
i)-
Pokud chceme nahradit bez ohledu na velikost písmen, použijeme příznak
i. -
Lze kombinovat – např.
/text/giznamená „nahraď všechna slova text bez ohledu na velikost písmen“.
-
-
Spolupráce s regulárními výrazy
-
replace()je úzce propojena s regulárními výrazy. Díky nim můžeme hledat složitější vzory (např. všechna čísla, e-mailové adresy, skupiny písmen). -
Pro začátečníky je důležité vědět, že když místo řetězce použijeme
/.../, pracujeme s regulárním výrazem.
-
Praktické příklady kódu
Typické chyby / záludnosti
-
Očekávání, že
data-start="2311" data-end="2380">replace()nahradí všechny výskyty bez použitíg
-
Zapomenutí, že regulární výraz se zapisuje do lomítek
/.../ -
Neuvědomění si rozdílu mezi
""a regulárním výrazem-
"text".replace("T", "X")– nenahradí, protože hledá přesnou shodu (velké písmeno). -
"text".replace(/t/i, "X")– funguje bez ohledu na velikost písmen.
-
Shrnutí
-
replace(hledane, nahrada)mění jen první výskyt. -
Pokud chceme nahradit všechny výskyty, použijeme regulární výraz s příznakem
g. -
Příznak
izajistí ignorování velikosti písmen. -
replace()vždy vrací nový řetězec, původní zůstává beze změny. -
Regulární výrazy dávají
replace()velkou flexibilitu při vyhledávání vzorů.
Úloha
Zadání (kontext úlohy):
Máš text, ve kterém se několikrát objevuje jedno slovo. Tvým úkolem je nahradit ho jiným slovem, aby věta dávala nový význam.
Cíl úlohy:
Procvičit si použití metody .replace() pro základní nahrazení i pro nahrazení všech výskytů pomocí regulárního výrazu.
Vstupní podmínky:
-
Student pracuje pouze s nově vytvořeným souborem
script.js. -
V souboru si vytvoří proměnnou
texts libovolnou větou, kde se jedno slovo opakuje víckrát.
Požadovaný výstup:
-
Do konzole se vypíše věta, kde se nahradí jen první výskyt slova.
-
Do konzole se vypíše věta, kde se nahradí všechny výskyty tohoto slova.
Doplňující pokyny:
-
Pro nahrazení všech výskytů je potřeba použít regulární výraz s příznakem
g. -
Pamatuj, že původní text zůstane nezměněný – výsledky si ulož do nových proměnných.
Řešení úlohy
Co je zde splněno:
-
vytvoření proměnné
texts opakujícím se slovem, -
použití
.replace("slovo","náhrada")pro první výskyt, -
použití regulárního výrazu
/slovo/gpro nahrazení všech výskytů, -
výpis všech verzí textu do konzole.
Vylepšení oproti začátečnické verzi:
-
možnost využití novější metody
.replaceAll()místo regulárního výrazu (přehlednější zápis), -
šablonové řetězce pro čistší a kratší výpis.
Poznámky:
replace("slovo", "náhrada")nahradí jen první nalezený výskyt.Pro nahrazení všech výskytů je nutný regulární výraz s příznakem g (global).
Původní text zůstává nezměněný, výsledky se ukládají do nových proměnných.