jesteś tutaj
325
Typy, równość, konwersje i cały ten jazz
Pięciominutowa wycieczka po metodach
(i właściwościach) łańcuchów znaków
Ponieważ właśnie jesteśmy w trakcie rozważań na temat łańcuchów znaków,
a oprócz tego właśnie dowiedziałeś się, że łańcuchy znaków udostępniają
metody, dlatego zdecydowaliśmy, by na chwilę przerwać rozważania
o różnych typach i przyjrzeć się najpopularniejszym metodom łańcuchów
znaków, których użyciem mógłbyś być zainteresowany. Kilka spośród tych
metod jest używanych bardzo często i zdecydowanie warto poświęcić czas,
żeby je poznać. A zatem zaczynamy wycieczkę.
Krótka pogadanka motywacyjna: moglibyśmy
zupełnie odwrócić Twoją uwagę od
zagadnienia typów i napisać cały rozdział
prezentujący wszystkie właściwości i metody
łańcuchów znaków. Nie tylko sprawiłoby
to, że ta książka ważyłaby 10 kg i miała
2000 stron grubości, ale, zważywszy
na to, co aktualnie umiesz, zupełnie
byś tej wiedzy nie potrzebował — znasz
już podstawowe informacje o metodach
i obiektach, a jeśli naprawdę chcesz
poznać szczegóły przetwarzania łańcuchów
znaków, potrzebujesz jedynie dobrej książki
encyklopedycznej.
właściwość length
Właściwość length przechowuje liczbę znaków w łańcuchu. Jest bardzo wygodna,
kiedy trzeba w jakiś sposób przetworzyć każdy znak łańcucha.
Metoda charAt wymaga podania liczby całkowitej z zakresu od 0 do liczby znaków
włańcuchu (pomniejszonej o 1) i zwraca łańcuch składający się z jednego znaku,
zapisanego we wskazanym miejscu. Łańcuch znaków można sobie wyobrazić jako coś
podobnego do tablicy, w której elementach są zapisane poszczególne znaki łańcucha.
Indeksy tej tablicy (jak i każdej innej) zaczynają się od 0. Jeśli do metody charAt
przekażemy indeks większy lub równy długości łańcucha, zwróci ona łańcuch pusty.
var input = ”janka#bardzosprytni.com.pl”;
for(var i = 0; i < input.length; i++) {
if (input.charAt(i) === ”#”) {
console.log(”Znak # znajduje siÚ w miejscu o indeksie ” + i);
}
}
Zwróć uwagę, że w języku JavaScript nie
ma typu danych reprezentującego pojedynczy
znak. Znaki są zwracane jako nowe łańcuchy
zawierające tylko jeden znak.
Używamy właściwości length,
aby sprawdzić każdy znak
łańcucha...
...oraz metody charAt, by pobrać
znak umieszczony w konkretnym
miejscu łańcucha.
a
charAt(0)
zwróci „a”.
charAt(5)
zwróci „f”.
bcG
e
I
Konsola JavaScript
=QDN#]QDMGXMHVLÚZPLHMVFX
o indeksie 5
metoda charAt
326
Rozdział 7.
Metoda indexOf
Metoda ta pobiera argument będący łańcuchem znaków i zwraca indeks pierwszego
wystąpienia tego łańcucha w łańcuchu, na rzecz którego metoda została wywołana.
var phrase = ”czy to kot, czy coĂ innego?”;
var index = phrase.indexOf(”kot”);
console.log(”Sïowo kot zapisano, zaczynajÈc od indeksu ” + index);
Konsola JavaScript
6ïRZRNRW]DSLVDQR]DF]\QDMÈF
od indeksu 7
To jest łańcuch znaków, na
rzecz którego wywołamy metodę
indexOf.
A naszym celem jest znalezienie
pierwszego wystąpienia słowa „kot”.
Zwracany jest indeks pierwszego kota.
index = phrase.indexOf(”czy”, 7);
console.log(”Sïowo czy zapisano, zaczynajÈc od indeksu ” + index);
Można także dodać drugi argument określający
indeks miejsca, od którego zostaną rozpoczęte
poszukiwania.
Konsola JavaScript
6ïRZRF]\]DSLVDQR]DF]\QDMÈF
od indeksu 12
index = phrase.indexOf(”pies”);
console.log(”Sïowo pies zapisano, zaczynajÈc od indeksu ” + index);
Konsola JavaScript
6ïRZRSLHV]DSLVDQR]DF]\QDMÈF
od indeksu -1
Zauważ, że jeśli nie udało się znaleźć
łańcucha znaków, metoda zwraca wartość –1.
Ponieważ rozpoczynamy poszukiwania od
znaku o indeksie 7, zatem pominiemy pierwsze
wystąpienie słowa „czy” i znajdziemy drugie,
rozpoczynające się od znaku o indeksie 12.
Metoda indexOf
jesteś tutaj
327
Typy, równość, konwersje i cały ten jazz
Do metody substring należy przekazać dwa indeksy, a ona pobierze i zwróci łańcuch
znaków zawarty pomiędzy nimi.
var data = ”imiÚ|telefon|adres”;
var val = data.substring(5, 12);
console.log(”Wybrany fragment to: ” + val);
W wywołaniu metody substring można pominąć drugi indeks i w takim przypadku
metoda zwróci fragment rozpoczynający się od miejsca określonego pierwszym
indeksem i obejmujący całą pozostałą część łańcucha.
Konsola JavaScript
Wybrany fragment to: telefon
To jest łańcuch znaków,
na rzecz którego wywołamy
metodę substring.
Interesuje nas fragment łańcucha
zaczynający się od indeksu 5
i kończący przed indeksem 12.
Otrzymujemy nowy łańcuch składający
się ze znaków o indeksach od 5 do 12.
val = data.substring(5);
console.log(”Teraz pobranym fragmentem jest: ” + val);
Konsola JavaScript
Teraz pobranym fragmentem jest:
telefon|adres
Metoda split pobiera łańcuch znaków pełniący rolę separatora i dzieli łańcuch znaków
na części w miejscach jego występowania.
var data = ”imiÚ|telefon|adres”;
var vals = data.split(”|”);
console.log(”Oto tablica z podzielonym ïañcuchem ”, vals);
Konsola JavaScript
2WRWDEOLFD]SRG]LHORQ\PïDñFXFKHP>LPLÚWHOHIRQDGUHV@
Metoda split korzysta z separatora,
by podzielić początkowy łańcuch
znaków na fragmenty, które zostaną
zwrócone w formie tablicy.
Metoda substring
Zwróć uwagę, że tym razem do
metody console.log przekazujemy dwa
argumenty oddzielone przecinkiem.
Dzięki temu tablica vals nie zostanie
skonwertowana na łańcuch znaków
przed jej przekazaniem do metody.
Metoda split
328
Rozdział 7.
Metody łańcuchów znaków
3R]QDQLHZV]\VWNLFKU]HF]\NWyUHPRİQDURELþ
]ãDęFXFKDPL]QDNyZPRJãRE\WUZDþFDãĈ
ZLHF]QRĤþ3RZ\İHMSU]HGVWDZLOLĤP\NLOND
NROHMQ\FKGRVWčSQ\FKPHWRG1DUD]LHW\ONR
SU]\MU]\MVLčLPDSyĮQLHMNLHG\EčG]LHV]
LFKSRWU]HERZDãSRV]XNDV]V]F]HJyãRZ\FK
LQIRUPDFMLQDLFKWHPDW
substring
match
toUpperCase
replace
concat
slice
lastIndexOf
trim
toLowerCase
Zupa
¦KħM_MRYaK
Zwraca łańcuch, w którym
wszystkie wielkie litery
zostały zamienione na
małe.
Zwraca nowy łańcuch
będący łańcuchem
początkowym, z którego
został usunięty
określony fragment.
Zwraca fragment
łańcucha.
Usuwa tzw. białe znaki z początku
i końca łańcucha. Bardzo wygodna
w przypadku przetwarzania danych
wprowadzanych przez użytkownika.
Próbuje znaleźć w łańcuchu
fragmenty pasujące do
wyrażenia regularnego.
Zwraca łańcuch, w którym
wszystkie małe litery
zostały zamienione na
wielkie.
Łączy ze sobą łańcuchy
znaków.
Znajduje fragmenty łańcucha
i zastępuje je innymi.
Działa jak metoda indexOf,
ale zamiast pierwszego
wystąpienia podanego
fragmentu znajduje jego
ostatnie wystąpienie.
Get Programowanie w JavaScript Rusz głową! now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.