Obiekt String

Składnia:

zmienna = new String("to jest String");

Obiekt String pozwala nam na formatowanie i manipulacje łańcuchem znakowym.
Oczywiście, obiekt taki możemy również utworzyć bez używania operatora new:

zmienna = "to jest String";

W większości przypadków, nie ma żadnego znaczenia, w jaki sposób obiekt ten utworzymy. Jeśli jednak jest ktoś zainteresowany różnicą pomiędzy jednym a drugim sposobem tworzenia tego obiektu, to proponuję dokładne przeanalizowanie przykładu.




Właściwości obiektu String:


Metody obiektu String:

Właściwości obiektu String

zmiennaString.length

Zwraca długość łańcucha tzn. ilość znaków w zmiennej String.


Metody obiektu String

zmiennaString.charAt(indeks)

Zwraca znak o podanym indeksie. Pierwszy znak w łańcuchu ma indeks 0, drugi 1, trzeci 2 itd.

Przykład:

var str = "Jakiś tekst";
a = str.charAt(0);// zwraca pierwszy znak
b = str.charAt(4);// zwraca piąty znak
b = str.charAt(str.length-1);// zwraca ostatni znak


zmiennaString.charCodeAt(indeks)

Zwraca znak o podanym indeksie, zakodowany w standardzie Unicode. Pierwszy znak w łańcuchu ma indeks 0, drugi 1, trzeci 2 itd.


String.fromCharCode(kod1, kod2, ..., kodn)

Zamienia serię kodów Unicode w łańcuch znakowy.

Przykład:

var a = String.fromCharCode(66, 111, 103, 100, 97, 110);
// a ma wartość "Bogdan"


zmiennaString1.concat(zmiennaString2)

Łączy dwa łańcuchy znakowe.
Przykład:

var str1 = "Java";
var str2 = "Script";
a = str1.concat(str2);
// wartość zmiennej a wynosi "JavaScript"


Metodę można zastąpić znakiem dodawania czyli:

a = str1 + str2;


zmiennaString1.indexOf(zmiennaString2);
lub
zmiennaString1.indexOf(zmiennaString2,indeks_początkowy);

Zwraca pozycję pierwszego wystąpienia zmiennejString2 w zmiennejString1. Jeżeli jest podany indeks początkowy to przeszukiwanie rozpoczyna się od pozycji tego indeksu. Indeks jest oparty na zerze, tak więc pierwszy znak ma indeks równy 0, drugi 1, trzeci 2 itd.
Jeżeli zmiennaString1 nie zawiera zmiennejString2 to metoda zwraca wartość -1.

Przykład:

var str = "Honolulu";
var a = str.indexOf("lu");
// a ma wartość 4


zmiennaString1.lastIndexOf(zmiennaString2);
lub
zmiennaString1.lastIndexOf(zmiennaString2,indeks_początkowy);

Zwraca pozycję ostatniego wystąpienia zmiennejString2 w zmiennejString1. Jeżeli jest podany indeks początkowy to przeszukiwanie rozpoczyna się od pozycji tego indeksu. Indeks jest oparty na zerze, tak więc pierwszy znak ma indeks równy 0, drugi 1, trzeci 2 itd.
Jeżeli zmiennaString1 nie zawiera zmiennejString2 to metoda zwraca wartość -1.

Przykład:

var str = "Honolulu";
var a = str.lastIndexOf("lu");
// a ma wartość 6


zmiennaString.search(zmiennaRegExp);

Zwraca pozycję pierwszego wystąpienia łańcucha znakowego w zmiennejString, który pasuje do wzorca zdefiniowanego w zmiennejRegExp (zobacz Obiekt RegExp). Indeks jest oparty na zerze, tak więc pierwszy znak ma indeks równy 0, drugi 1, trzeci 2 itd.
Jeżeli zmiennaString nie zawiera łańcucha pasującego do wzorca to metoda zwraca wartość -1.

Przykład:

var str = "ul.Krótka 6";
var re = /[0-9]/;//wzorzec - dowolna cyfra
var a = str.search(re);
// a ma wartość 10 i jest to pozycja znaku, który jest cyfrą


zmiennaString.match(zmiennaRegExp);

Metoda przeszukuje zmiennąString w poszukiwaniu łańcucha znakowego pasującego do wzorca zdefiniowanego w zmiennejRegExp (zobacz Obiekt RegExp).
Wartością zwrotną jest tablica zawierająca rezultat poszukiwań.
Jeżeli zmiennaString nie zawiera łańcucha pasującego do wzorca to metoda zwraca wartość null.

Przykład:

var str = "2 koty, 4 psy i 3 papugi";
var re = /[0-9]/g;//wzorzec - dowolna cyfra
var a = str.match(re);
/* a jest tablicą gdzie:
a[0]=2
a[1]=4
a[2]=3 */


zmiennaString.replace(zmiennaRegExp, tekst);

Wartością zwrotną tej metody jest kopia zmiennejString, gdzie pierwszy znaleziony lub wszystkie znalezione łańcuchy znakowe pasujące do wzorca zdefiniowanego w zmiennejRegExp (zobacz Obiekt RegExp) zostają zamienione na łańcuch określony zmienną tekst.
To, czy zostaną zamienione wszystkie wystąpienia wzorca, czy też tylko pierwszy zależy od ustawienia opcji g (global) w obiekcie RegExp.

Przykład:

var str = "<H4>Nagłówek</H4>";
var re = /H4/g;//wzorzec
var a = str.replace(re,"H1");
/* "H4" zostało zamienione na "H1", a jest równe "<H1>Nagłówek</H1>" */


zmiennaString1.split(zmiennaString2);

Metoda dzieli zmiennąString1 na mniejsze łańcuchy znakowe, przy czym miejsca podziału są określone przez znak lub łańcuch znaków zmiennaString2.
Zamiast zmiennejString2 można również użyć obiektu RegExp.
Wartością zwrotną tej metody jest tablica zawierająca łańcuchy znakowe powstałe na wskutek podziału.

Przykład:

var str = "Jakiś dowolny tekst";
var a = str.split(" ");//wzorcem jest spacja
/* teraz a jest tablicą gdzie:
a[0]="Jakiś"
a[1]="dowolny"
a[2]="tekst" */


zmiennaString.slice(indeks_początkowy);
lub
zmiennaString.slice(indeks_początkowy,indeks_końcowy);

Zwraca łańcuch znakowy "wycięty" ze zmiennejString.
Jeżeli podany jest tylko indeks początkowy to wycięcie następuje od indeksu początkowego do końca zmiennej. Jeżeli występują obydwa indeksy, to wycięcie następuje od indeksu początkowego do indeksu końcowego.
Indeks jest oparty na zerze, tak więc pierwszy znak ma indeks równy 0, drugi 1, trzeci 2 itd.
Jeżeli podamy ujemny indeks końcowy to będzie to indeks liczony od końca. Jednak należy zwrócić uwagę, że indeks ujemny nie jest oparty na zerze, tak więc ostatni znak ma indeks równy -1, przedostatni -2 itd.

Przykład:

var str = "kawalkada";
var a = str.slice(2,7);
var b = str.slice(2,-2);
// zarówno a jak i b ma wartość "walka"

Przykład:
Jak wydobyć z adresu samą nazwę pliku?

var adres = "http://www.adres.pl/kat1/kat2/plik.html";
var plik = adres.slice(adres.lastIndexOf("/")+1);
//teraz zmienna plik ma wartość "plik.html"


zmiennaString.substring(indeks_początkowy);
lub
zmiennaString.substring(indeks_początkowy,indeks_końcowy);

Metoda, która działa tak jak wyżej omówiona metoda slice, różniąca się tylko w dwóch punktach:


zmiennaString.substr(indeks_początkowy);
lub
zmiennaString.substr(indeks_początkowy,długość);

Zwraca łańcuch znakowy "wycięty" ze zmiennejString.
Jeżeli podany jest tylko indeks początkowy to wycięcie następuje od indeksu początkowego do końca zmiennej. Jeżeli podana jest długość, to wycięty zostanie łańcuch o określonej długości.
Indeks jest oparty na zerze, tak więc pierwszy znak ma indeks równy 0, drugi 1, trzeci 2 itd.

Przykład:

var str = "kawalkada";
var a = str.substr(2,5);
// a ma wartość "walka"


zmiennaString.toLowerCase();

Zwraca łańcuch znakowy, w którym wszystkie duże litery zostają zamienione na małe.

Przykład:

var str = "JavaScript";
var a = str.toLowerCase();
// a ma wartość "javascript"


zmiennaString.toUpperCase();

Zwraca łańcuch znakowy, w którym wszystkie małe litery zostają zamienione na duże.

Przykład:

var str = "JavaScript";
var a = str.toUpperCase();
// a ma wartość "JAVASCRIPT"


zmiennaString.link(adres)

Obejmuje tekst zawarty w zmiennej String znacznikiem <A> z atrybutem HREF.

Przykład:

var a = "Odnośnik";
a = a.link("http://www.adres.pl");
/* teraz wartość zmiennej a wynosi "<A HREF='http://www.adres.pl'>Odnośnik</A>" */


zmiennaString.anchor(nazwaZakladki)

Obejmuje tekst zawarty w zmiennej String znacznikiem <A> z atrybutem NAME.

Przykład:

var a = "Zakładka";
a = a.anchor("zakl1");
/* teraz wartość zmiennej a wynosi "<A NAME='zakl1'>Zakładka</A>" */


zmiennaString.bold()

Obejmuje tekst zawarty w zmiennej String znacznikiem <B>.

Przykład:

var a = "Jakiś tekst";
a = a.bold();
/* teraz wartość zmiennej a wynosi "<B>Jakiś tekst</B>" */


zmiennaString.italics()

Obejmuje tekst zawarty w zmiennej String znacznikiem <I>.

Przykład:

var a = "Jakiś tekst";
a = a.italics();
/* teraz wartość zmiennej a wynosi "<I>Jakiś tekst</I>" */


zmiennaString.fixed()

Obejmuje tekst zawarty w zmiennej String znacznikiem <TT>.

Przykład:

var a = "Jakiś tekst";
a = a.fixed();
/* teraz wartość zmiennej a wynosi "<TT>Jakiś tekst</TT>" */


zmiennaString.fontcolor(nazwaKoloru)

Obejmuje tekst zawarty w zmiennej String znacznikiem <FONT> z atrybutem COLOR.

Przykład:

var a = "Jakiś tekst";
a = a.fontcolor("red");
/* teraz wartość zmiennej a wynosi "<FONT COLOR='red'>Jakiś tekst</FONT>" */


zmiennaString.fontsize(rozmiar)

Obejmuje tekst zawarty w zmiennej String znacznikiem <FONT> z atrybutem SIZE.

Przykład:

var a = "Jakiś tekst";
a = a.fontsize(4);
/* teraz wartość zmiennej a wynosi "<FONT SIZE='4'>Jakiś tekst</FONT>" */


zmiennaString.big()

Obejmuje tekst zawarty w zmiennej String znacznikiem <BIG>.

Przykład:

var a = "Jakiś tekst";
a = a.big();
/* teraz wartość zmiennej a wynosi "<BIG>Jakiś tekst</BIG>" */


zmiennaString.small()

Obejmuje tekst zawarty w zmiennej String znacznikiem <SMALL>.

Przykład:

var a = "Jakiś tekst";
a = a.small();
/* teraz wartość zmiennej a wynosi "<SMALL>Jakiś tekst</SMALL>" */


zmiennaString.strike()

Obejmuje tekst zawarty w zmiennej String znacznikiem <STRIKE>.

Przykład:

var a = "Jakiś tekst";
a = a.strike();
/* teraz wartość zmiennej a wynosi "<STRIKE>Jakiś tekst</STRIKE>" */


zmiennaString.sub()

Obejmuje tekst zawarty w zmiennej String znacznikiem <SUB>.

Przykład:

var a = "Jakiś tekst";
a = a.sub();
/* teraz wartość zmiennej a wynosi "<SUB>Jakiś tekst</SUB>" */


zmiennaString.sup()

Obejmuje tekst zawarty w zmiennej String znacznikiem <SUP>.

Przykład:

var a = "Jakiś tekst";
a = a.sup();
/* teraz wartość zmiennej a wynosi "<SUP>Jakiś tekst</SUP>" */


zmiennaString.blink()

Obejmuje tekst zawarty w zmiennej String znacznikiem <BLINK>.

Przykład:

var a = "Jakiś tekst";
a = a.blink();
/* teraz wartość zmiennej a wynosi "<BLINK>Jakiś tekst</BLINK>" */

Znacznik <BLINK> jest ignorowany przez przeglądarkę Internet Explorer.