JavaScript/Kenjiro995/Textové proměnné
Online editor
[editovat]Není nutné cokoliv instalovat protože existují online editory.
- https://replit.com/ - osvědčil se mi při ukládání vytvořených programů, při vytváření nové relace si lze vybrat z mnoha programovacích jazyků
- https://jsfiddle.net/ - ideální pro počáteční experimentování (použít pro tuto hodinu)
- okno HTML - použití scriptu v html
- okno CSC - pro kaskádové styly
- okno JavaScript + No-libray (pure JS) - pro psaní čistě v JavaScriptu
Sčítání (slepování) textu
[editovat]Operátor plus +, čísla sice sčítá, ale řetězce slepuje dohromady.
var a, b;
a = "Dnes prší";
b = "proto si vezmu deštník.";
document.write(a + b);
document.write("<br>");
document.write(a + ", " + b);
Výstup:
Dnes pršíproto si vezmu deštník. Dnes prší, proto si vezmu deštník.
V příkazu document.write() lze také oddělovat čárkou, což funguje podobně jako slepování pomocí +:
var a, b, veta;
a = "Dnes prší";
b = "proto si vezmu deštník.";
document.write(a,", ",b);
Výstup:
Dnes prší, proto si vezmu deštník.
Také je možné si to v proměnné připravit jako vzorec a následně výsledek vypsat:
var a, b, veta;
a = "Dnes prší";
b = "proto si vezmu deštník.";
veta = a + ", " + b;
document.write(veta);
Výstup:
Dnes prší, proto si vezmu deštník.
Sčítání (slepování) textu přírůstkem
[editovat]v = v + "text";
Se dá zjednodušit:
v += "text";
Příklad užití:
var a = "Ahoj",m= " ", o = "?", v="";
v += a;
v += m + "jak";
v += m + "se";
v += m + "máš";
v += o;
document.write(v);
Výsledek:
Ahoj jak se máš?
Přístup k textovému řetězci přes index
[editovat]Ke každému textovému řetězci lze přistupovat podobně jako s polem přes index. S proměnou typu pole je tak možné vypsat konkrétní položku. V případě testového řetězce je položkou každý znak. První znak se čísluje od nuly.
var a = "Ahoj";
// 0123
document.write(a[0]); // prvním znakem je A
document.write("<br>");
document.write(a[3]); // posledním znakem je j
Výstup:
A j
To samé jako předchozí příklad, ale s využitím příkazu alert, výpis do infoboxu:
var a = "Ahoj";
// 0123
alert(a[0] + "\n" + a[3]);
Výstup:
A j
Uvozovky uvnitř textu
[editovat]Protože se řetězec uvozuje do uvozovek, tak další uvozovky uvnitř textu způsobí chybu. Někdy je ale zapotřebí do textu uvozovky vkládat a proto existují metody jak předejít chybě: 1) Používají se dva druhy uvozovek, "dvojité uvozovky" a 'jednoduché uvozovky'. Textový řetězec se ohraničí jedním druhem a vnitřní se ohraničí druhým druhem. 2) Pomocí lomítka je možné označit uvozovky, které jsou součástí textu.
var text = 'Jan Werich řekl: "Jedna ženská vidí dál, než muž s dalekohledem."'; //kombinace jednoduchých a dvojitých uvozovek
var text = "Jan Werich řekl: \"Jedna ženská vidí dál, než muž s dalekohledem.\""; //varianta s lomitkem \"
Funkce pro práci s textem
[editovat]Vlastnost length
[editovat]Jedinou vlastností objektu string je jeho délka -- length. Vrací počet znaků v řetězci. Prázdný řetězec má délku nula.
var text = "kocourek";
document.write(text.length); // má 8 znaků
nebo:
document.write("kocourek".length); // má 8 znaků
Výstup:
8
Funkce pro změnu velikosti písma
[editovat]- toUpperCase() ... převádí všechna písmena řetězce na velká
- toLowerCase() ... převádí všechna písmena na malá
var promenna = "text".toUpperCase();
document.write(promenna); // vypíše TEXT
Výstup:
TEXT
var promenna = "TEXT".toLowerCase();
document.write(promenna); // vypíše text
Výstup:
text
split() Funkce pro rozsekání řetězce podle oddělovače
[editovat]Rozdělí řetězec na jednotlivé řetězce a vloží je jako záznamy do pole. Jednotlivé záznamy jsou ve výstupu odděleny čárkou.
var retezec = "a.b.c.d.e.f.g.h.i.j";
pole = retezec.split("."); // odělovačem (separátorem) je tečka "."
document.write(pole.toString());
Výstup:
a,b,c,d,e,f,g,h,i,j
Rozdělení věty na slova:
var retezec = "Jednotlivé záznamy jsou ve výstupu odděleny čárkou.";
pole = retezec.split(" "); // odělovačem (separátorem) je mezera " "
document.write(pole.toString());
Výstup:
Jednotlivé,záznamy,jsou,ve,výstupu,odděleny,čárkou.
Výpis položky podle indexu pole:
var retezec = "Jednotlivé záznamy jsou ve výstupu odděleny čárkou.";
// 0 1 2 3 4 5 6
pole = retezec.split(" "); // odělovačem (separátorem) je mezera " "
document.write(pole[0]); // 0 Jednotlivé
document.write("<br>");
document.write(pole[3]); // 3 ve
document.write("<br>");
document.write(pole[6]); // 6 čárkou.
Výstup:
Jednotlivé ve čárkou.
match() Funkce vyhledává text podle regulárního výrazu
[editovat]var a = "Ukázkový text";
document.write(a.match(".$")); // "t"
document.write("<br>");
document.write(a.match(".*")); // "Ukázkový text"
document.write("<br>");
document.write(a.match(". .")); // "ý t"
Výstup:
t Ukázkový text ý t
Značky regulárních výrazů:
- . Tečka zastupuje jeden libovolný znak.
- ^ Počátek řetězce
- $ Konec řetězce
- ? Minimálně 0krát (maximálně neomezeno)
- + minimálně 1krát (maximálně neomezeno)
- {n} právě n-krát
- {m,n} minimálně m-krát, maximálně n-krát
- {m,} minimálně m-krát (maximálně neomezeno)
- [] seznam povolených znaků
- [ab] pouze "a" nebo "b"
- [^ab] cokoliv kromě "a" nebo "b"
- \d číslice 0-9
- \D jakýkoliv znak kromě číslic 0-9
- \w znaky (a-z, A-Z, 0-9 a podtržítko)
- \W jakýkoliv znak kromě (a-z, A-Z, 0-9 a podtržítko)
- \s bílé znaky (mezera, tabulátor, zanky pro zalomení řádku)
- \S jakýkoliv znak kromě býlích znaků
- | znamená: nebo OR, vybírá jedno nebo druhé, A|B vybírá A nebo B
- \b na začátku nebo konci slova
- \B kdekoliv kromě začátku a konci slova
- () subřetězec
- (?: ) uzávorkování netvořící zpětnou referenci
- (?# ) text se znakem # je ignorován
- (?= ) kladné tvrzení o následujícím
- (?! ) záporné tvrzení o následujícím
- (?<= ) kladné tvrzení o předcházejícím
- (?<! ) záporné tvrzení o předcházejícím
- i nerozlišování malých/velkých písmen
- s odpovídá znaku \n (nový řádek)
- m odpovídá začátku a konci každého řádku
- x bíle znaky a komentáře (znaky vpravo od #) jsou ignorovány
- g hledány všechny části řetězce, které odpovídají hledanému výrazu (vrací pole/seznam)
Script který vyhledá všechny e-mailové adresy v řetězci a vrátí je jako pole(seznam), jednotlivé položky odděleny čárkou:
var a = "Ukázkový text kenjiro@javascript.cz 781-256 kenjiro@kotlcoch.ger";
var vzor = /[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-z]{2,4}/g
var vysledek = a.match(vzor);
document.write(vysledek);
Výstup:
kenjiro@javascript.cz,kenjiro@kotlcoch.ger
Script který vrátí všechna slova začínající na "int":
var str="Na itnetwork rozvijim sve developerske schopnosti.";
var n=str.match(/itn\w+/g);
document.write(n);
Výstup:
itnetwork
Script který vrátí všechna slova obsahující "čink" a současně tímto výrazem nezačíná:
var str="činka tyčinka palačinka javor činku tyčinkou";
var n=str.match(/[a-zA-Z0-9._-]+čink\w+/g);
document.write(n);
Výstup:
tyčinka,palačinka,tyčinkou
Script který vrátí všechna slova obsahující "čink" včetně těch slov, která tak začínají:
var str="činka tyčinka palačinka javor činku tyčinkou";
var n=str.match(/[a-zA-Z0-9._-]+čink\w+|čink\w+/g);
document.write(n);
Výstup:
činka,tyčinka,palačinka,činku,tyčinkou