-
Vytvořte prázdnou stránku, do které vložte knihovnu
validator.js
a svůj JavaScriptindex.js
. -
Ověřte pomocí metody
validator.isEmail
platnost vaší e-mailovou adresu. -
Pokud máte po ruce platební kartu, ověřte, že má platné číslo pomocí metody
isCreditCard
. Případně můžete otestovat kartu 4125010001000208. -
Do těla stránky vložte prázdný odstavec, který bude zobrazovat zprávu pro uživatele.
<p id="msg" class="msg"></p>
-
Napojte do stránky váš vlastní javascriptový soubor
index.js
. -
Pomocí funkce
prompt
požádejte uživatele o jeho e-mail. V případě, že jde o platný e-mail, zobrazte v připraveném odstavci zprávu „E-mail v pořádku“. V opačném případě zobrazte „Neplatný e-mail“. -
Pokud je e-mail platný, přidejte zároveň na odstavec CSS třídu
msg--valid
. V opačném případě použijte třídumsg--invalid
. Přidejte do stránky souborstyle.css
a třídy nastylujte například tak, žemsg--valid
bude mít zelené pozadí amsg--invalid
naopak červené.<!-- index.html --> <link rel="stylesheet" href="style.css" />
/* style.css */ .msg { color: white; padding: 10px; } .msg--valid { background-color: green; } .msg--invalid { background-color: red; }
-
Stránku postupně otestujte zadáním platné i neplatné adresy.
Řešení
const email = prompt('Zadejte váš e-mail');
const isEmail = validator.isEmail(email);
const messageElement = document.querySelector('#message');
if (isEmail) {
messageElement.textContent = 'E-mail v pořádku';
messageElement.classList.add('msg--valid');
} else {
messageElement.textContent = 'Neplatný e-mail';
messageElement.classList.add('msg--invalid');
}
Podívejte se na stránku existuje-mimozemsky-zivot.cz. Podle toho, v jakém období toto zadání čtete, se dozvíte, zda jsme již objevili život mimo planetu Zemi. Stránka zobrazuje pouze jednoduchou zprávu. Podobných stránek lze na internetu najít vícero. Například
Vytvořte podobnou stránku s vaším vlastním tématem.
- Vytvořte prázdnou stránku, do které vložte knihovnu
Day.js
. - Vyberte si nějakou budoucí událost, jejíž datum je pevně určeno. Za pomoci knihovny
Day.js
vytvořte stránku zobrazující velké ANO nebo NE případně krátkou zprávu podle toho, zda už událost nastala či nikoliv.
- Publikuje vaši stránku přes GitHub Pages (případně Netlify drop či jinou alternativu, pokud je znáte).
Řešení
const today = dayjs();
const aliensFoundDate = dayjs('2042-11-06');
const pageTitleEl = document.querySelector('h1');
if (today.isAfter(aliensFoundDate)) {
pageTitleEl.textContent = 'Mimozemšťané konečně objeveni!';
} else {
pageTitleEl.textContent = 'Mimoze-co? Nevím, o čem to mluvíte.';
}
Zlovolní zahrádkáři nám chtějí ztížit výměru pozemků a proto si pořídíli pozemek ve tvaru elipsy.
Z matematiky víme, že známe-li šířku a výšku elipsy, její obsah je polovina šířky krát polovina výšky krát číslo π (tj. přibližně 3,14).
Založte si prázdnou stránku s JavaScriptovým souborem a napište funkci ellipseArea
, která spočítá (vrátí) plochu pozemku dle zadané šířky a výšky. Číslo π najdete v JavaScriptu v proměnné Math.PI
.
Funkci ellipseArea
otestujte (např. pomocí document.body.innerHTML +=
vypište výsledek volání pro různé hodnoty do stránky).
- Pro šířku
1
a výšku2
by mělo vyjít1.5707963267948966
. - Pro
2
a2
pak3.141592653589793
.
Řešení
const ellipseArea = (width, height) => {
return (width / 2) * (height / 2) * Math.PI;
};
document.body.innerHTML += `<p>${ellipseArea(1, 2)}</p>`;
document.body.innerHTML += `<p>${ellipseArea(2, 2)}</p>`;
Napište funkci max2
, která vrátí větší ze dvou zadaných čísel. V JavaScriptu už na toto funkce existuje, jmenuje se Math.max
. Pro účely tohoto příkladu se budeme tvářit, že o ní nevíme.
Řešení
const max2 = (a, b) => {
if (a > b) {
return a;
} else {
return b;
}
};
Všimněte si, že knihovna validator.js
v době vzniku tohoto zadání neumí ověřit platnost českého DIČ (daňové identifikační číslo). Zkusme tedy takovou funkci napsat.
Formát DIČ sestává z předpony CZ a poté následuje devět nebo deset číslic. Tedy například
- CZ123456789
- CZ1234567890
Postupujte dle následujících kroků:
- Vytvořte prázdnou stránku s JavaScriptem a knihovnou
validator.js
. - Vytvořte funkci
isDIC
s jedním parametreminputStr
, což bude řetězec, který chceme zkontrolovat. - Jako první ve funkci zkontrolujte, jestli je vstupní řetězce kratší než 11 znaků. V takovém případě nemá smysl dál nic dělat, protože vstup evidentně není DIČ. Vraťte tady z funkce
false
. Tím naše funkce končí. Všimněte si, že takto používáme vzor časný návrat. - Dále ve funkci zkontrolujte, jestli je vstupní řetězce delší než 12 znaků. V takovém případě opět vraťte
false
. - Dále si ve funkce do proměnné
prefix
uložte první dva znaky vstupního řetězce. - Pomocí podmínky zkontrolujte, že proměnná
prefix
obsahuje přesně znakyCZ
. Pokud ne, ihned vraťtefalse
. - Do promměné
digits
si uložte část vstupního řetězce od třetího znaku dále. - Použijte metodu
validator.isInt
, která umí zkontrolovat, zda řetězec obsahuje pouze číslice. Pokud metoda vrátífalse
, ihned také vraťtefalse
. - Pokud funkce dospěla až do tohoto bodu, vstup prošel všemi testy. Můžeme vrátit
true
. - Vyzoušejte svoji funkci na různých vstupech a ověřte, že funguje. Nezapomeňte ověřit platná i neplatná DIČ.
- CZ123456789
- CZ1234567890
- 123
- ABC
- 1234567890
- 001234567890
- 1234567890CZ
- CZ12345678901
- CZ12345678
- CZA12345678
Řešení
const isDIC = (inputStr) => {
// kontrola délky
if (inputStr.length < 11) {
return false;
}
if (inputStr.length > 12) {
return false;
}
// kontrola prefixu CZ
const prefix = inputStr.slice(0, 2);
if (prefix !== 'CZ') {
return false;
}
// kontrola, že za prefixem jsou jen číslice
const digits = inputStr.slice(2);
if (!validator.isInt(digits)) {
return false;
}
return true;
};