Ú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

  1. 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").

  2. 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.

  3. toUpperCase()

    • Vrací nový řetězec s písmeny převedenými na velká.

    • Používá se méně často, ale je funkčně rovnocenná.

  4. 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() nebo toUpperCase().

    • 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.