String znamená řetězec - Vlastnost length - Metody objektu string - Zbytečné HTML metody
String je objekt řetězce. Jeho metody a vlastnosti se dají uplatnit fakticky na každý řetězec nebo proměnou, jejíž obsah je řetězec.
Dříve se mělo zapisovat
var proměnná = new string();
a teprve potom s proměnnou pracovat. V praxi se to ale nedělá. Stačí řetězec nebo proměnnou použít, to je příjemná zvláštnost objektu string.
var proměnná = "hodnota";
Hodnotu můžu uvozovat buďto uvozovkami ", nebo apostrofy '. Když potřebuju do hodnoty dostat i řádkové zlomy nebo prostě víceřádkový vstup, použiju obrácené apostrofy (backticks) `:
var víceřádková_proměnná = `hodnota
na
víc
řádků`;
Metody se potom aplikují symbolicky takto:
řetězec.metoda();
do závorky patří parametry; častou chybou je zápis
metoda(řetězec); // tohle je chyba
Jedinou vlastností objektu string je jeho délka -- length. Vrací počet znaků v řetězci. Prázdný řetězec má délku nula. (Pozor na syntaxi: length je správně, lenght je špatně; nepopleťte pořadí písmenek t a h.)
alert("kocourek".length); //vyhodí hlášku 8, protože kocourek má 8 písmen
Metody objektu string dělím na dvě skupiny: užitečné a zbytečné. Zbytečné metody se snaží řetězce obalit nějakými HTML tagy, což se dá udělat i jinak a logičtěji. Užitečné metody umějí nalézt výskyt podřetězce, převádět řetězec, spojovat atd.
Dále pokračují užitečné metody.
metoda | co to dělá |
---|---|
toUpperCase() | převádí všechna písmena řetězce na velká |
toLowerCase() | převádí všechna písmena na malá |
Příklad:
promenna = "text".toUpperCase();
document.write(promenna); // vypíše TEXT
metoda | co to dělá |
---|---|
toString() | převádí čísla na řetězec |
Metoda toString() je určena k převodu čísel na řetězec, což ale dělá JavaScript automaticky, pokud je to potřeba. Takže toString() většinou vrátí tentýž řetězec. Příklad ukazuje manipulaci s číslicemi, nikoliv s čísly:
dvojka = 2;
ctyrka = 4;
cislice = dvojka.toString() + ctyrka.toString();
document.write("Sčítání číslic: " + cislice ); // Vypíše 24 jako řetězec
cislo = dvojka + ctyrka;
document.write("Sčítání čísel: " + cislo ); // Vypíše 6 jako číslo
Inverzní metodou by měl být konstruktor Number(), který převede validní číselný řetězec na číslo.
Metoda toString() se asi nejvíc hodí pro převod do jiných číselných
soustav (až do 36kové).
Například cislo.toString(16) převede číslo z decimální do hexadecimální
soustavy. Ve spojení s parseInt(number,base), které převede číslo z
base-soustavy do decimální, je to nejsnadnější metoda na převod.
metoda | co to dělá |
---|---|
charAt(n) | vrátí entý znak počítáno od nuly |
charCodeAt(n) | vrátí Unicode číslo znaku na enté pozici |
substring(a, b) | vrátí znaky od a-té do b-té pozice, vyjma znaku na pozici b |
substr(a, b) | vrátí b znaků od pozice a |
Když se zadají špatné parametry (mimo rozsah řetězce), mělo by to hlásit chybu. Pozice znaků v řetězci je počítána od nuly, to jest první znak je na pozici nula.
substring(0, 4) vrátí podřetězec začínající prvním znakem (0) a končící čtvrtým včetně. Čtyřka sice znamená pátý znak, ale ten v podřetězci nebude, protože funkce substring poslední znak do výběru nezahrnuje.
retezec.substring(10, retezec.length) vrátí podřetězec od jedenáctého znaku do konce (ta desítka znamená jedenáctý znak, protože znaky se číslují od nuly; retezec.length přitom znamená počet znaků v řetězci.).
substr(počáteční pozice, počet znaků) vrátí podřetězec o daném počtu znaků, počínaje pozicí. Pokud není zadaný druhý parametr (počet znaků), vrací se podřetězec od zadané pozice až do konce řetězce.
metoda | co to dělá |
---|---|
concat(řetězec1, řetězec2, řetězecN) | spojí řetězce do jednoho. Může jich být více. V praxi totéž jako řetězec1 + řetězec2 + ... + řetězecN. |
fromCharCode(kód1, kód2, ..., kódN) | vytvoří řetězec ze zadaných kódů Unicode |
metoda | co to dělá |
---|---|
indexOf(podřetězec) | vrací pozici výskytu podřetězce v řetězci |
lastIndexOf(podřetězec) | vrací poslední výskyt podřetězce v řetězci |
split(oddělovač) | vrací pole podřetězců mezi oddělovači |
indexOf(podřetězec) vrací pozici výskytu podřetězce v řetězci. Pokud se tam podřetězec nevyskytuje, vrací funkce číslo -1. Metoda string.indexOf() je patrně nejpoužívanější řetězcovou metodou, protože velmi často chci vědět, zda se podřetězec ve stringu nachází. Když je indexOf() to menší než nula, znamená to, že se tam nenachází.
split(oddělovač) vrací pole, v jehož položkách jsou jednotlivé podřetězce, které se v původním řetězci nacházejí mezi oddělovači. Například se takto dá rozdělit text na věty, pokud se jako oddělovač použije tečka. Indexy pole jsou číslovány od nuly. Klasické použití této metody je rozklad cookies. Napřed je oddělovačem středník, potom v cyklu for rovnítko. Nebo se tak oddělují proměnné z adresy - příklad.
Metody obalují vstupní hodnotu řetězce nějakým HTML tagem. Příklad použití metody big:
var promenna = "vstup";
document.write( promenna.big() ); // vypíše <big>vstup</big>
document.write( "<big>" + promenna + "<big>"); // vypíše to samé
Bylo by to užitečné jedině v případě, kdy se do proudu dokumentu zapisuje nějaký větší text. A to se dělá jen zřídka, ale hlavně tyto metody existují jen pro některé (většinou zastaralé) tagy. Jediná trochu použitelná metoda je link(), protože usnadňuje zápis odkazu (ten nezastaral).
zbytečná metoda | návratová hodnota |
---|---|
anchor("kotva") | <a name="kotva">vstup</a> |
big() | <big>vstup</big> |
blink() | <blink>vstup</blink> |
bold() | <b>vstup</b> |
fixed() | <tt>vstup</tt> |
fontcolor("barva"), nejsem si jistý formátem barvy |
<font color="barva">vstup</font> |
fontsize(n) | <font size="n">vstup</font> |
italics() | <i>vstup</i> |
link("URL") | <a href="URL">vstup</a> |
small() | <small>vstup</small> |
strike() | <strike>vstup</strike> |
sub() | <sub>vstup</sub> |
sup() | <sup>vstup</sup> |
Jak psát web píše Yuhů, Dušan Janovský. Kontakt.