stringi. - lomilowka.pl

Transkrypt

stringi. - lomilowka.pl
String
Jak wiemy zmienne poza liczbami mogą zawierać także ciągi znaków zwane stringami (zostańmy
przy sferze programowania :P).
var tekst = "Ala ma kota, a kot ma Ale, Ala go lubi, a kot ja
wcale...";
Powyżej zadeklarowałem zmienną, która zawiera ciąg znaków. Od tej pory mogę na tej zmiennej
(czyli na tym tekście) wykonywać różne czynności, a to za sprawą udostępnianych przez Javascript
szeregu właściwości i metod.
Pobieranie długości tekstu za pomocą właściwości length
Aby odczytać długość naszego tekstu posłużymy się właściwością length.
var tekst = "Ala ma kota, a kot ma Ale, Ala go lubi, a kot ja
wcale";
alert(tekst.length); //wypisze się 54
//lub też
alert( "Ala ma kota".length )
Pobieranie znaku za pomocą charAr()
Aby odczytać znak na odpowiedniej pozycji w naszym tekście posłużmy się metodą charAt.
var tekst = "Ala ma kota, a kot ma Ale, Ala go lubi, a kot ja
wcale";
document.write(tekst.charAt(2)); //wypisze się "a" bo stringi
indeksowane są od 0
Kolejne zastosowanie:
var tekst = "Ala ma kota, a kot ma Ale, Ala go lubi, a kot ja
wcale";
document.write(tekst.charAt(tekst.length-1)); //wypisze się
ostatnia litera tekstu czyli "e"
Jeszcze jeden przykład:
var tekst = "Ala ma kota";
for (i=0; i<tekst.length; i++) {
for (x=0; x<i; x++)
document.write("&nbsp;&nbsp;&nbsp;&nbsp;");
document.write("<strong>" + tekst.charAt(i) + "</strong><br
/>");
Co w rezultacie da nam:
A
l
a
m
a
k
o
t
a
No cóż. Używanie niełamliwej spacji do ustawiania pozycji literek nie świadczy zbyt dobrze o
naszym profesjonalizmie ^^
Pobieranie kodu znaku za pomocą charCodeAt()
Metoda zwraca nam kod ASCII znaku na pozycji podanej w parametrze.
var tekst = "Ala ma kota";
document.write(tekst.charCodeAt(0)); //wypisze się 65 (A)
document.write(tekst.charCodeAt(4)); //wypisze się 109 (m)
Zmiana wielkości liter za pomocą metod toUpperCase() i
toLowerCase()
Metody toUpperCase() i toLowerCase() służą odpowiednio do zamieniania tekstu na duże i małe
litery.
?
var tekst = "Ala ma kota";
document.write(tekst.toUpperCase()); //wypisze sie ALA MA KOTA
document.write(tekst.toLowerCase()); //wypisze sie ala ma kota
Zmiana tylko pierwszych liter w słowach
Powyższe metody zmieniają wszystkie litery w danym tekście. Często jednak chcemy zmienić tylko
pierwsze litery w słowach (tak zwane Capitalize). Niestety JavaScript nie udostępnia nam metody,
która by realizowała to zadanie. Możemy jednak pokusić się aby napisać ją własnoręcznie:
function capitalize(str) {
var tempArray = str.split(' ');
//tworzymy tablicę zawierającą słowa naszego tekstu
for (var i = 0; i < tempArray.length; i++) {
//wykonujemy pętlę po elementach tablicy
tempArray[i] = tempArray[i].charAt(0).toUpperCase()
+
//zwiększamy pierwszą literkę słowa...
tempArray[i].substring(1);
//+ dodajemy dalszą część słowa
}
return tempArray.join(' ');
//łączymy naszą tablicę w tekst
}
document.write( capitalize(zmienna,1) );
To Jest Zdanie Pisane Malymi Literkami
Tak samo możemy zamieniać pierwsze litery w słowach na małe. Wystarczy tylko zamiast metody
toUpperCase() skorzystać z toLowerCase().
//...
tempArray[i] = tempArray[i].charAt(0).toLowerCase() +
tempArray[i].substring(1);
//...
Pobieranie kawałka tekstu za pomocą metody substring()
Metoda ta służy do pobierania kawałka tekstu. Pierwszym jej parametrem jest początek
pobieranego kawałka tekstu, a drugi wskazuje na ilość pobieranych liter. Drugi parametr jest
opcjonalny. Jeżeli go nie podamy, wówczas pobierany kawałek tekstu będzie się rozpoczynał w
miejscu na który wskazuje pierwszy parametr, a kończył z końcem tekstu. Na przykład:
var tekst = "Ala ma kota";
document.write(tekst.substring(0,3) + '<br />'); //wypisze sie
Ala
document.write(tekst.substring(3)); //wypisze sie ma kota
Ala
ma kota
Przykład poprawiania imienia:
var tekst = "mArCiNeK";
document.write("Przed zamiana: " + tekst + "<br />"); //wypisze sie
mArCiNeK
document.write("Po zamianie: " + tekst.charAt(0).toUpperCase() +
tekst.substr(1).toLowerCase(); //wypisze sie Marcinek
Przed zamiana: mArCiNeK
Po zamianie: Marcinek
Pobieranie kawałka tekstu za pomocą metody substr()
Metoda substr ma bardzo podobne działanie do powyższej. Jedyna różnica polega na sposobie
wywoływania. Ta metoda wymaga dwóch parametrów - pierwszy określa index początku
pobieranego tekstu, drugi ilość znaków do pobrania:
var tekst = "Ala ma kota";
document.write(tekst.substr(0,3)); //wypisze sie Ala
document.write(tekst.substr(4,7)); //wypisze sie ma kota
Ala
ma kota
Prawdpododobnie w większości przypadków będziesz częściej korzystał z metody substring, gdyż
jest łatwiejsza w użyciu.
Sprawdzanie pozycji podtekstu za pomocą metody indexOf()
Metoda ta służy do podawania pozycji podtekstu w tekście. Jeżeli zwróconą wartością jest -1, to
podtekstu nie ma:
var tekst = "Ala ma kota";
document.write('Pozycja ciągu kot: ' + tekst.indexOf('kot'));
//wypisze sie liczba oznaczająca pozycję ciągu kot
Pozycja ciągu kot: 7
var zmienna = "Ala ma kota";
//sprawdzamy czy ciąg "psa" istneje
if (tekst.indexOf('psa') > 0) {
document.write('Ala ma psa');
} else {
document.write('Ala ma kota');
}
Ala ma kota
Podobne działanie ma metoda lastIndexOf, podaje ona jednak numer indexu ostatniego
wystąpienia podtekstu
var tekst = "Ala ma kota i tak już jest";
alert(tekst.lastIndexOf('a')); //wypisze 15
Przycinanie tekstu za pomocą metody slice()
Tak samo jak w przypadku tablic, tak i w przypadku zmiennych tekstowych możemy skorzystać z
metody slice(od,ile), która "tnie" nasz tekst i tworzy w ten sposób nowy. Pierwszy parametr od
wskazuje na index (może być ujemny - wtedy będzie liczony od końca tekstu), od którego ma
"wyciąć" kolejne litery, a parametr ile wskazuje ile liter ma być "wyciętych" (licząc od początku
tekstu):
var tekst = "Ala ma kota";
var tekst_2 = tekst.slice(0,3)
document.write(tekst_2); //wypisze się Ala
var tekst_2 = tekst.slice(1,5)
document.write(tekst_2); //wypisze się la m
var tekst_2 = tekst.slice(4 , 6)
document.write(tekst_2); //wypisze się ma
var tekst_2 = tekst.slice(4)
document.write(tekst_2); //wypisze się ma kota
var tekst_2 = tekst.slice(-3)
document.write('Ala już nie ma ' + tekst_2 + ', bo kocur jej
zwiał...'); //wypisze się Ala już nie ma kota, bo kocur jej
zwiał...
No cóż. Tak czasami też bywa...
Więcej przykładów zastosowania tej metody możesz zobaczyć tutaj: slice().
Metoda ta bardzo dobrze nadaje się do usuwania pierwszych i ostatnich elementów z naszego
tekstu. Aby na przykład usunąć pierwszą literę zastosujemy instrukcję:
var tekst = "Ala ma kota";
document.write( tekst.slice(1) )
Aby usunąć ostatnią literę skorzystajmy z instrukcji:
document.write( zmienna.slice(0, zmienna.length-1) )
Dzielenie tekstu na części za pomocą metody split()
Metoda split(znak,dlugosc) dzieli tekst na części. Miejsce podziału jest podawane w parametrze
znak, a maksymalna ilość zwracanych elementów w parametrze długość (IE pomija ten parametr):
var tekst = "Ala ma kota, a kot ma Alę, Ala go kocha, a Kot ją
wcale ;("
var czesci = tekst.split(', ',2);
for (x=0; x<czesci.length; x++)
document.write(czesci[x] + '<br />');
Ala ma kota...
a kot ma Alę...
Zamiana tekstu za pomocą metody replace()
Metoda replace(ciag_szuakny, zamieniony) służy do zamiany szukanych kawałków tekstu na inny
tekst.
var tekst = "Ala ma kota, a kot ma Alę, Ala go kocha, a Kot ją
wcale ;("
var zamieniony = tekst.replace("Ala","Ola");
document.write(zmienna + "<br />");
document.write(zamieniony);
Ala ma kota
Ola ma kota, a kot ma Alę, Ala go kocha, a Kot ją wcale ;(
W powyższym przykładzie, zamieniona zostanie tylko pierwsza Ala. Aby wszystkie Ale zmutowały
w Ole, musimy zastosować wyrażenie regularne, nakazujące wyszukanie wszystkich Ali.
var tekst = "Ala ma kota, a kot ma Alę, Ala go kocha, a Kot ją
wcale ;("
var zamieniony = tekst.replace(/Al/g,"Ol");
document.write(zmienna + "<br />");
document.write(zamieniony);
Ala ma kota
Ola ma kota, a kot ma Olę, Ola go kocha, a Kot ją wcale ;(

Podobne dokumenty