Objekt String:

Deklarace

objekt string je normální textový řetězec, který vytvoříte buď pomocí konstruktoru:
text=new String ("textový obsah proměnné");
anebo jak už jste asi zvyklí:
text="textový obsah proměnné";
výsledek je identický.

Použitelné metody a vlastnosti

metoda její funkce
charAt(index); udává znak na pozici index - pozor, první písmeno má index 0
charCodeAt(index); udává hodnotu znaku na daném indexu jako 16-bitové číslo
concat("retezec1","retezec2"); připojuje řetězce v závorkách k cílené stringové proměnné a vrací délku nově vzniklé proměnné
fromCharCode(ASCII); převede ASCII kód na normální znak
indexOf("výraz",start_index); hledá daný výraz v proměnné a vrací index jeho prvního výskytu. Hledání začíná od znaku na pozici start_index (pokud se neuvede, program začne hledat od začátku), pokud není řetězec nalezen, metoda vrátí -1
lastIndexOf stejné jako předchozí příkaz, pouze vrací index posledního výskytu
slice(od,do); vyřízne ze stringové proměnné znaky mezi dvěma zadanými indexy
text="lexicon"; a=text.slice(1,3); //a má hodnotu "ex"
split(oddelovac,limit); rozděluje proměnnou do pole, přičemž první buňka pole (a každá další) končí, když program narazí v řetězci na oddělovač. Limit je nepovinná hodnota, udává maximální počet buněk.
myString = "N,I,R,V,A,N,A"; pole=myString.split(",");
substr(2,5); od třetího znaku dále (=od indexu 2) vyřízne 5 znaků
substring(1,3) vyřízne znaky mezi prvním a třetím indexem
toLowerCase z velkých písmen udělá malá písmena
toUpperCase z malých písmen udělá velká
vlastnost její funkce
length vrací délku řetězce

Hledání v textu

Opět jednoduchý příklad. na hlavní scéně vytvořte dvě textové pole. Inputové, do kterého budete psát hledaný výraz (pojmenujte jej "hledat") a poté dynamické, kde bude text, ve kterém se daný výraz bude hledat ("pole"). Dále bude potřeba nějaké (jakékoliv) tlačítko.

Do prvního snímku vložte tento skript:

pismo="strasne moc textu, ktery bude prohledavan";
_root.pole.text=_root.pole.text.toLowerCase();

Nejdříve musíte zadeklarovat proměnnou, kterou bude dynamické pole vypisovat (dynamickému poli zadejte do Var _root.pismo). Další příkaz konvertuje v "poli" všechna velká písmena na malá. Není to nijak důležité, ale aspoň uvidíte, jak příkaz funguje... Další skript přidejte k tlačítku:

on (release) {
  index=_root.pismo.indexOf(_root.hledat.text);
  Selection.setFocus(_root.pole);
  Selection.setSelection(index, index+_root.hledat.text.length);
}

Nejdůležitější je druhý řádek skriptu. _root.pismo.indexOf hledá v proměnné "pismo" řetězec, který se načte z inputového pole - _root.hledat.text. Pokud najde daný řetězec, vyselektuje ho. K tomu slouží další dva řádky.

Bližší informace o těchto příkazech jsou uvedeny v Objekt Selection. Nyní stačí pouze pochopit, že příkaz setSelection vybere část textu. S výběrem pak začne na "index" a skončí na "index+délka hledaného výrazu", takže skutečně opravdu vybere pouze hledaný výraz.

Pokud ovšem hledaný výraz nenajde, bude index 0 a vyselektuje se prvních x písmen v textu (respektive vyselektuje se jich tolik, jaká je délka hledaného výrazu). Pokud byste tomu chtěli zamezit, museli byste použít ještě nějakou podmínku.

prohlédnout

hlavní stránka # o tento web se stará Lukáš Havrlant # lukas.havrlant@gmail.com