Úloha 4 – Metoda .replace() a globální nahrazení textu
Ú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ů.