Úloha 3 – Normalizace textu před porovnáním
Ú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.