Dokumentacja języka JavaScript 1.5:Obiekty:String
z Mozilla Developer Center, polskiego centrum programistów Mozilli.
Spis treści |
[edytuj] Podsumowanie
Obiekt główny
Reprezentuje obiekt przechowujący łańcuch znaków w łańcuchu znaków.
[edytuj] Tworzony przez
Konstruktor łańcucha znaków:
new String(string)
[edytuj] Parametry
-
string - Dowolny łańcuch znaków.
[edytuj] Opis
Obiekty String są tworzone przez wywołanie new String():
s_obj = new String("foo"); // tworzy obiekt String
Obiekt String opakowuje dane prostego łańcucha znaków JavaScript wpisanych za pomocą opisanej poniżej metody. Funkcja globalna String() może także być wywołana bez new z przodu do tworzenia prostych łańcuchów:
s_prim = String("bar"); //tworzy prosty łańcuch znaków
Literał znakowy w kodzie źródłowym JavaScript tworzy proste łańcuchy znaków:
s_also_prim = "foo"; // tworzy prosty łańcuch znaków
Ponieważ JavaScript automatycznie przeprowadza przekształcenia pomiędzy prostymi łańcuchami znaków i obiektami String, możemy wywołać każdą z metod obiektu String dla prostego łańcucha znaków. JavaScript automatycznie przekształca prosty łańcuch znaków do tymczasowego obiektu String, wywołując metodę, odrzuca wówczas tymczasowy obiekt String. Dla przykładu, możemy użyć własności String.length w prostym łańcuchu znaków utworzonym za pomocą literału znakowego:
s_obj.length; // 3 s_prim.length; // 3 s_also_prim.length; // 3 'foo'.length; // 3 "foo".length; // 3
(Literał znakowy może używać pojedynczego lub podwójnego znacznika cytowania).
Obiekty String mogą być przekształcane do prostych łańcuchów znaków z String.valueOf().
Proste łańcuchy znaków i obiekty String dają różne wyniki, gdy są interpretowane jak JavaScript. Proste są traktowane jako kod źródłowy; obiekty String są traktowane jako łańcuch znaków obiektu. Na przykład:
s1 = "2 + 2" // tworzy prosty łańcuch
s2 = new String("2 + 2") // tworzy obiekt String
eval(s1) // zwraca liczbę 4
eval(s2) // zwraca łańcuch znaków "2 + 2"
eval(s2.valueOf()); // zwraca liczbę 4
Możesz przekształcić wartość każdego obiektu do łańcucha znaków używając funkcji globalnej String.
[edytuj] Uzyskanie dostępu do pojedynczych znaków w łańcuchu
Są dwa sposoby uzyskiwania dostępu do pojedynczych znaków w łańcuchu. Pierwszą z nich jest metoda charAt:
'kot'.charAt(1) // zwraca "o"
Drugim sposobem jest wykorzystanie łańcucha jak tablicy, gdzie kolejne indeksy odpowiadają pojedynczym znakom:
'kot'[1] // zwraca "o"
Zauważ: Druga metoda (użycie łańcucha jako tablicy) nie jest częścią ECMASctiptu; jest ona cechą JavaScriptu.
W obu sposobach, próba ustawienia pojedynczego znaku zakończy się fiaskiem. Próba ustawienia znaku poprzez charAt kończy się błędem:
var x = 'kot'; x.charAt(0) = 'b'; // błąd
Ustawianie znaku poprzez indeksowanie nie zwróci błędu, ale wtedy sam łańcuch nie zostanie zmieniony:
var x = 'kot'; x[2] = 'p'; alert(x); // wciąż daje "kot" alert(x[2]); // wciąż daje "t"
[edytuj] Porównywanie łańcuchów
Programiści języka C mają funkcję strcmp() służącą im do porównywania łańcuchów. W JavaScript używamy po prostu operatorów, mniejszy niż (<) i większy niż (>):
var a = "a";
var b = "b";
if (a < b) // prawda
document.write(a + " jest mniejsze od " + b);
else if (a > b)
document.write(a + " jest większe od " + b);
else
document.write(a + " i " + b + " są równe.");
[edytuj] Własności
-
constructor: Oznacza funkcję, która tworzy prototyp obiektu. -
length: Odzwierciedla długość łańcucha znaków. -
prototype: Pozwala na dodawanie własności do obiektuString.
[edytuj] Metody statyczne
-
fromCharCode: Zwraca łańcuch znaków stworzony przez podaną sekwencję kodów Unicode.
[edytuj] Metody
[edytuj] Metody niezwiązane z HTML
-
charAt: Zwraca znak o podanym indeksie. -
charCodeAt: Zwraca liczbę oznaczającą wartość Unicode znaku o podanym indeksie. -
concat: Łączy dwa łańcuchy znaków i zwraca nowy łańcuch. -
indexOf: Zwraca indeks pierwszego wystąpienia podanego znaku w obiekcieStringlub-1, gdy niczego nie znaleziono. -
lastIndexOf: Zwraca indeks ostatniego wystąpienia podanego znaku w obiekcieStringlub-1, gdy niczego nie znaleziono. -
match: Używane do porównania wyrażenia regularnego z łańcuchem znaków. -
replace: Używane do znalezienia podobieństwa pomiędzy wyrażeniem regularnym a łańcuchem znaków, a następnie do podmiany znalezionego podłańcucha nowym podłańcuchem. -
search: Uruchamia wyszukiwanie podobieństwa pomiędzy wyrażeniem regularnym a podanym łańcuchem. -
slice: Wyciąga kawałek łańcucha i zwraca nowy łańcuch. -
split: Dzieli obiektStringna tablicę łańcuchów poprzez dzielenie łańcucha na podłańcuchy. -
substr: Zwraca podłańcuch znaków z łańcucha, zaczynający się w podanym miejscu i podanej długości znaków. -
substring: Zwraca znaki w podłańcuchu pomiędzy dwoma indeksami w łańcuchu. -
toLowerCase: Zwraca wywołujący łańcuch skonwertowany do małych liter. -
toSource: Zwraca literał obiektu reprezentujący podany obiekt; możesz użyć tej wartości do utworzenia nowego obiektu. Przesłania metodęObject.toSource. -
toString: Zwraca łańcuch reprezentujący podany obiekt. Przesłania metodęObject.toString. -
toUpperCase: Zwraca wywołujący łańcuch skonwertowany do WIELKICH LITER. -
valueOf: Zwraca wartość prymitywną podanego obiektu. Przesłania metodęObject.valueOf.
[edytuj] Metody związane z HTML
Niestandardowy
-
anchor: Tworzy HTML anchor, który jest użyty jako kotwica. -
big: Powoduje, iż łańcuch zostanie wyświetlony jakby był on wewnątrz znacznikaBIG. -
blink: Powoduje, iż łańcuch będzie migotał tak jakby był on wewnątrz znacznikaBLINK. -
bold: Powoduje, iż łańcuch zostanie wyświetlony jakby był wewnątrz znacznikaB. -
fixed: Powoduje, iż łańcuch zostanie wyświetlony czcionką o stałej szerokości tak jakby był wewnątrz znacznikaTT. -
fontcolor: Powoduje, iż łańcuch zostanie wyświetlony podanym kolorem tak jakby był wewnątrz znacznika<FONT COLOR="color">. -
fontsize: Powoduje, iż łańcuch zostanie wyświetlony czcionką o podanej wielkości tak jakby był wewnątrz znacznika<FONT SIZE="size">. -
italics: Powoduje, iż łańcuch zostanie wyświetlony kursywą tak jakby był wewnątrz znacznikaI. -
link: Tworzy łącze hipertekstowe, które wywołuje inny adres URL. -
small: Powoduje, iż łańcuch zostanie wyświetlony małą czcionką tak jakby był wewnątrz znacznikaSMALL. -
strike: Powoduje, iż łańcuch zostanie wyświetlony przekreślony, tak jakby był wewnątrz znacznikaSTRIKE. -
sub: Powoduje, iż łańcuch zostanie wyświetlony jako indeks dolny tak jakby był wewnątrz znacznikaSUB. -
sup: Powoduje, iż łańcuch zostanie wyświetlony jako indeks górny tak jakby był wewnątrz znacznikaSUP.
[edytuj] Przykłady
[edytuj] Przykład: Dosłowny łańcuch znaków
Poniższy przykład tworzy dosłowny łańcuch znaków i przypisuje go do zmiennej nazwisko:
var nazwisko = "Schaefer";
[edytuj] Przykład: Własności dosłownego łańcucha znaków
Poniższe przykłady ewaluują do 8, "SCHAEFER" i "schaefer":
nazwisko.length nazwisko.toUpperCase() nazwisko.toLowerCase()
[edytuj] Przykład: Ustawianie pojedynczego znaku w łańcuchu
Pojedynczy znak w łańcuchu nie może być zmieniony bezpośrednio. Zamiast tego, nowy łańcuch może być utworzony używając metody substr lub substring:
function ustawZnak(lancuch, indeks, znak) {
return lancuch.substr(0, indeks) + znak + lancuch.substr(indeks + 1);
}
alert(ustawZnak('scam', 1, 'p')); // napisze "spam"
[edytuj] Przykład: Przekazywanie łańcucha pomiędzy skryptami w różnych oknach lub ramkach
Poniższy przykład tworzy dwie zmienne łańcuchowe i otwiera nowe okno:
var nazwisko = "Schaefer";
var imie = "Jesse";
empWindow = window.open('string2.html', 'window1', 'width=300,height=300');
W źródle HTML drugiego okna (string2.html), tworzy dwie zmienne łańcuchowe, empNazwisko i empImie, poniższy kod w pierwszym oknie przypisuje wartości do zmiennych drugiego okna:
empWindow.empImie = imie; empWindow.empNazwisko = nazwisko;
Poniższy kod w pierwszym oknie wyświetla wartości zmiennych drugiego okna:
alert('Wartość empImie w empWindow to ' + empWindow.empImie);
alert('Wartość empNazwisko w empWindow to ' + empWindow.empLastName);