Úloha 7 – Normalizace řetězce s regulárním výrazem a úpravou délky
Úvod do úlohy
Při zpracování textu se v kódu často opakují stejné kroky: oříznout mezery, převést na jednotnou velikost písmen, odstranit diakritiku nebo nahradit zakázané znaky. Pokud tyto kroky děláme roztroušeně na více místech, kód se nafukuje, hůř se čte a hůř udržuje. Cílem tohoto bloku je naučit se identifikovat zbytečné operace, slučovat je do logických řetězců volání (method chaining) a psát komentáře, které jasně vysvětlí, proč a v jakém pořadí se transformace provádějí. Výsledkem budou kratší, čitelnější a snadno rozšiřitelné úseky kódu.
Teorie a principy
-
Detekce duplicit a zbytečností
-
Vyhledej opakované transformace (např. opakované
trim(), dvojítoLowerCase()apod.). -
Operace, které se nemění v čase, prováděj jednou a co nejpozději před porovnáním/výstupem.
-
-
Method chaining (řetězení metod)
-
Většina stringových metod vrací nový řetězec, takže je lze volat za sebou:
text.trim().toLowerCase().replace(...).slice(...). -
Řetězení pomáhá čitelnosti, pokud je krátké a logicky seřazené. Delší řetězy je vhodné rozdělit do více řádků.
-
-
Pořadí transformací je důležité
-
Typické pořadí: normalizace bílých znaků → sjednocení velikosti písmen → specifická náhrada → finální výřez/porovnání.
-
Nesprávné pořadí může změnit význam (např.
replace()předtrim()může ponechat náhodné mezery).
-
-
Malé, pojmenované kroky
-
Dlouhé řetězení rozděl do „mikro-fází“ s mezivýsledky a komentáři.
-
Každý krok by měl mít jedinou zodpovědnost (Single Responsibility).
-
-
Komentáře k posloupnosti volání
-
Komentuj záměr (co a proč), ne samozřejmý zápis.
-
U složitějších regulárních výrazů vysvětli význam skupin a příznaků (
g,i).
-
Praktické příklady kódu
1) Před a po – zbytečné opakování vs. čisté řetězení
Před
Po
2) Postupné fáze + komentáře k posloupnosti
3) Malá aplikace (HTML + CSS + JS) – refaktoring vstupu před validací
Typické chyby / záludnosti
-
Zbytečné opakování operací
-
Vícenásobné
toLowerCase()nebotrim()v jedné větvi kódu zpomaluje a mate. Udělej to jednou a na správném místě.
-
-
Nejasné nebo chybějící komentáře
-
Komentuj záměr a pořadí. Např. „nejdřív normalizuj mezery, pak teprve nahrazuj“ je užitečnější než „volání trim“.
-
-
Příliš dlouhý řetězec metod
-
Pokud je transformací mnoho, rozděl je na logické fáze (mezivýsledky s jasným názvem proměnné).
-
-
Nesprávné pořadí transformací
-
Např.
.replace()před.toLowerCase()může selhat, pokud hledáš bezi. -
Obecně nejdříve sjednoť tvar, poté dělej konkrétní náhrady.
-
-
Zapomenutí na neměnnost řetězců
-
Každá metoda vrací nový řetězec. Výsledek si ulož, jinak se „ztratí“.
-
Shrnutí
-
Identifikuj duplicity a zbytečné operace; prováděj je jednou a v jasném pořadí.
-
Využívej method chaining pro přehlednost, ale dlouhé řetězy raději rozděl do fází srozumitelných názvů.
-
Komentuj záměr a pořadí transformací, zvlášť u regulárních výrazů.
-
Pamatuj na neměnnost řetězců – vždy pracuješ s novou hodnotou.
-
Standardní pořadí: trim → normalizace mezer → sjednocení písmen → specifické náhrady → finální porovnání/výstup.