Úloha 3 – Normalizace textu před porovnáním
| Stránky: | Moodle ZČU |
| Kurz: | Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný) |
| Kniha: | Úloha 3 – Normalizace textu před porovnáním |
| Vytiskl(a): | Nepřihlášený host |
| Datum: | neděle, 18. října 2026, 17.29 |
Úvod do úlohy
V mnoha situacích při práci s textem potřebujeme zajistit, aby se řetězce porovnávaly spravedlivě a bez ohledu na to, jak velká nebo malá písmena uživatel zadá. Typickým příkladem je přihlášení: uživatelské jméno Admin by mělo být chápáno stejně jako admin nebo ADMIN. V opačném případě by aplikace mohla nesprávně vyhodnotit vstup jako chybný. V JavaScriptu nám k řešení těchto problémů slouží metody toLowerCase() a toUpperCase(), které dokážou převést celý řetězec na malá nebo na velká písmena.
Teorie a principy
-
Citlivost na velikost písmen (case-sensitivity)
-
V JavaScriptu se řetězce porovnávají znak po znaku.
-
Velké a malé písmeno jsou odlišné znaky (
"A"není stejné jako"a").
-
-
toLowerCase()-
Vrací nový řetězec, kde jsou všechna písmena převedena na malá.
-
Hodí se pro sjednocení textu před porovnáním.
-
-
toUpperCase()-
Vrací nový řetězec s písmeny převedenými na velká.
-
Používá se méně často, ale je funkčně rovnocenná.
-
-
Neměnnost řetězců
-
Ani jedna metoda nemění původní text, vždy vrací nový řetězec.
-
Pokud chceme výsledek použít, musíme ho uložit do proměnné.
-
Praktické příklady kódu
Typické chyby / záludnosti
-
Zapomenutí sjednotit obě strany porovnání
-
Pokud použijeme
toLowerCase()jen na jednu hodnotu, může porovnání selhat.
-
-
Očekávání, že se změní původní proměnná
-
Nevhodný výběr metody
-
Není důležité, zda použijeme
toLowerCase()nebotoUpperCase(). -
Důležité je, aby byla volba konzistentní pro obě porovnávané hodnoty.
-
Shrnutí
-
Porovnávání řetězců v JavaScriptu je case-sensitive –
"A"není"a". -
toLowerCase()převede řetězec na malá písmena. -
toUpperCase()převede řetězec na velká písmena. -
Řetězce jsou neměnné – je nutné výsledek uložit do proměnné nebo použít přímo v porovnání.
-
Před porovnáváním textů (např. hesla, uživatelského jména, domény) je vhodné sjednotit formát.
Úloha
Zadání (kontext úlohy):
Představ si, že máš jednoduchý systém, který kontroluje, zda uživatel zadal správné heslo. Chceme, aby se heslo vyhodnocovalo správně, i když uživatel použije velká nebo malá písmena jinak než v uložené verzi.
Cíl úlohy:
Procvičit si použití metod .toLowerCase() nebo .toUpperCase() pro sjednocení textu před porovnáním.
Vstupní podmínky:
-
Student pracuje pouze s nově vytvořeným souborem
script.js. -
V souboru budou dvě proměnné:
ulozeneHesloavstupUzivatele.
Požadovaný výstup:
-
Pokud se hesla shodují bez ohledu na velikost písmen, do konzole se vypíše „Přístup povolen“.
-
Pokud se hesla neshodují, do konzole se vypíše „Přístup zamítnut“.
Doplňující pokyny:
-
Pamatuj, že je nutné sjednotit obě hodnoty, jinak porovnání nemusí fungovat.
-
Můžeš zvolit buď
.toLowerCase(), nebo.toUpperCase(), ale vždy je použij na obě strany. -
Původní proměnná se metodou nezmění, metoda vždy vrací nový řetězec.
Řešení úlohy
Co je zde splněno:
-
vytvořeny dvě proměnné: uložené heslo a vstup uživatele,
-
použití metody
.toLowerCase()pro sjednocení textu, -
porovnání probíhá správně bez ohledu na velikost písmen,
-
vypsání výsledku do konzole podle zadání.
Vylepšení oproti začátečnické verzi:
-
využití
.toUpperCase()místo.toLowerCase()(je to jedno, hlavní je použít na obě strany), -
ternární operátor zkracuje podmínku do jediné řádky, což je přehledné u jednoduchých rozhodnutí.
Poznámky:
.toLowerCase()ani.toUpperCase()nemění původní proměnnou, vždy vrátí nový řetězec.Pokud by se použila jen jedna strana, porovnání by nefungovalo.