Objekt string

String znamená řetězec - Vlastnost length - Metody objektu string - Zbytečné HTML metody

String znamená řetězec

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

Vlastnost length

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

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.

Metody velikosti písem

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

Konverzní metoda toString()

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.

Metody vracející část řetězce

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() znamená podřetězec

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() taky znamená potřetězec

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.

Metody skládající řetězec

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

Analytické metody

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.

Zbytečné HTML metody objektu string

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>

 

Reklama

www.webhosting-c4.cz, extra rychlý SSD webhosting s doménou v ceně
o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

Základy, objekty Příklady

Jak psát web píše Yuhů, Dušan Janovský. Kontakt.