validator.isEmail ověřte svoji e-mailovou adresu. isCreditCard.<p id="msg" class="msg"></p>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".msg--valid. V opačném případě použijte třídu msg--invalid. Třídy nastylujte například tak, že msg--valid bude mí zelené pozadí a msg--invalid naopak červené.'use strict';
console.log(validator.isEmail('pepa.novak@seznam.cz'));
console.log(validator.isCreditCard('4111 1111 1111 1111'));
const messagePanel = document.querySelector('#msg');
const email = prompt('Zadej email');
if (validator.isEmail(email)) {
messagePanel.textContent = 'Email je v pořádku';
messagePanel.classList.add('msg--valid');
} else {
messagePanel.textContent = 'Neplatný email';
messagePanel.classList.add('msg--invalid');
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p id="msg" class="msg"></p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/validator/13.5.2/validator.min.js"></script>
<script src="index.js"></script>
</body>
</html>
Podívejte se na stránku skonciluznouzovystav.cz. Podle toho, v jakém období toto zadání čtete, se dozvíte, zda již skončil nouzový stav spojený s pandemií COVID-19 či nikoliv. Stránka zobrazuje obyčejné ANO či NE a krátkou 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 dayjs.
<script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.10.4/dayjs.min.js" ></script>```
Vyberte si nějakou budoucí událost, jejíž datum je pevně určeno. Za pomoci knihovny dayjs 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 na GitHub pages.
'use strict';
const messagePanel = document.querySelector('#msg');
const stedryDen = dayjs('2021-12-24');
const dnes = dayjs();
if (dnes.isAfter(stedryDen)) {
messagePanel.textContent = 'ANO';
} else {
messagePanel.textContent = 'NE';
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Byl jis stedry den?</h1>
<p id="msg" class="msg"></p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.10.4/dayjs.min.js"></script>
<script src="index.js"></script>
</body>
</html>
Zlovolní zahrádkáři nám chtějí stížit výměru pozemků a proto si pořídíli pozemek ve tvru 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 π.
Založte si prázdnou stránku s JavaScriptovým souborem a napište funkci ellipseArea, která spočítá plochu pozemku dle zadané šířky a výšky. Číslo π najdete v JavaScriptu v proměnné Math.PI.
const ellipseArea = (w, h) => {
return (w / 2) * (h / 2) * Math.PI;
};
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.
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
Postupujte dle následujících kroků.
validator.js.isDIC s jedním parametrem inputStr, což bude řetězec, který chceme zkontrolovat. false. Tím naše funkce končí. Všimněte si, že takto používáme vzor "časný návrat". false.prefix uložte první dva znaky vstupního řetězce. prefix obsahuje přesně znaky CZ. Pokud ne, ihned vraťte false.digits si uložte část vstupního řetězce od třetího znaku dále. validator.isInt, která umí zkontrolovat, zda řetězec obsahuje pouze číslice. Pokud metoda vrátí false, ihned také vraťte false. true.'use strict';
const isDIC = (inputStr) => {
if (inputStr.length < 9) {
return false;
}
if (inputStr.length > 10) {
return false;
}
const prefix = inputStr.slice(0, 2);
if (prefix !== 'CZ') {
return false;
}
const rest = inputStr.slice(2);
if (!validator.isInt(rest)) {
return false;
}
return true;
};
console.log(isDIC('CZ1234567'));
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p id="msg" class="msg"></p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/validator/13.5.2/validator.min.js"></script>
<script src="index.js"></script>
</body>
</html>
Bez použití knihovny dayjs napište funkci parseDate, která na vstupu obdrží řetězec obsahující datum ve formátu DD.MM.YYYY a vrátí objekt s jednotlivýnu částmi zadaného data. Příklad použití:
> parseDate('12.03.2015')
<· { day: 12, month: 3, year: 2015 }
> parseDate('06.04.2021')
<· { day: 6, month: 4, year: 2021 }
'use strict';
const parseDate = (datum) => {
return {
day: Number(datum.slice(0, 2)),
month: Number(datum.slice(3, 5)),
year: Number(datum.slice(6)),
};
};
console.log(parseDate('12.03.2015'));
console.log(parseDate('06.04.2021'));
Bez použití knihovny dayjs napište funkci formatDate, která na vstupu obdrží objekt představující datum v následujícím formátu.
{ day: 12, month: 3, year: 2015 }
Funkce vrátí řetězec představující datum ve formátu DD.MM.YYYY. Příklad použití.
> formatDate({ day: 6, month: 4, year: 2021 })
<· "06.04.2021"
V tomto cvičení se vám jistě bude hodit metoda padStart. Zkuste také uvnitř těla funkce použít destrukturování.
'use strict';
const formatDate = (datum) => {
const den = String(datum.day).padStart(2, '0');
const mesic = String(datum.month).padStart(2, '0');
return `${den}.${mesic}.${datum.year}`;
};
console.log(formatDate({ day: 12, month: 3, year: 2015 }));
Jak jistě znalci jazyka Python dobře vědí, funkce round v tomto jazyce zaokrouhluje malinko jinak, než jsme zvyklí. Pokud je desetinná část čísla přesně 0.5, Python zaokrouhluje k nejbližšímu sudému číslu. JavaScriptová funkce Math.round naopak provádí zaokrouhlování způsobem, na který jste zvyklí, tedy pro 0.5 vždy nahoru. Někomu by se po po Pythonovském zaokrouhlování mohlo stýskat. Napište proto funkci jménem round, která bude zaokrouhlovat čísla na celé jednotky podle následujících pravidel.
V tomto cvičení se vám může hodit funkce Math.trunc, která umí odříznout desetinnou část čísla.
'use strict';
const round = (cislo) => {
const celeCislo = Math.trunc(cislo);
const desetinnaCast = cislo - celeCislo;
if (desetinnaCast !== 0.5) {
return Math.round(cislo);
} else {
if (celeCislo % 2 === 0) {
return Math.floor(cislo);
} else {
return Math.ceil(cislo);
}
}
};
console.log(round(3.5));
Napište funkci max3, která vrátí největší ze tří zadaných čísel. Opět se vyhněte použití funkce Math.max.
'use strict';
const max3 = (a, b, c) => {
if (a > b && a > c) {
return a;
} else if (b >= a && b >= c) {
return b;
}
return c;
};
console.log(max3(11, 24, 6));