Operacje na ciągach znaków to dość często spotykane zadania, zwłaszcza podczas walidacji danych. W MooTools zaimplementowano kilka ciekawych rozszerzeń dla natywnego obiektu String, które z pewnością ułatwią wiele rzeczy.

W pierwszej części kursu poświęconej obiektowi String zajmiemy się metodami zmieniającymi wygląd ciągu znaków (capitalize, hyphenate oraz camelCase), czyszczącymi tekst ze zbędnych białych znaków (trim i clean) oraz badającymi zawartość danego ciągu (test i contains).

Myślniki, wielbłądy i duże litery

Obiekt String udostępnia nam w MooTools trzy metody do zmiany zapisu ciągu znaków - camelCase, hyphenate i capitalize.

Metoda camelCase zamienia ciągi postaci:

"Tekst-testowy-dla-metody-camelCase"

w tekst postaci:

"TekstTestowyDlaMetodyCamelCase"

Aby uzyskać takie rezultaty należy zapisać:

"Tekst-testowy-dla-metody-camelCase".camelCase();

Tekst jaki zostanie zwrócony przez tą metodę można też zamienić na początkowy poprzez zapis:

"TekstTestowyDlaMetodyCamelCase".hyphenate();

Jak więc widzimy metody camelCase i hyphenate są wzajemnie powiązane...

Metoda capitalize powoduje zamianę pierwszych liter wyrazów na duże litery:

"kolejny testowy tekst".capitalize();

Powyższy kod zwróci nam tekst postaci:

"Kolejny Testowy Tekst"

Porządki w tekście

Jeżeli mamy dany tekst w którym chcemy się pozbyć wszystkich białych znaków znajdujących się na początku i na końcu ciągu znaków, to najłatwiej skorzystać z metody trim:

"          Tekst testowy       ".trim();

Powyższy kod zwróci nam:

"Tekst testowy"

Metoda trim jest także wykorzystywana w metodzie clean. Dzięki tej metodzie pozbędziemy się wszystkich zbędnych białych znaków tzn. wszystkich białych znaków na początku i końcu tekstu oraz wszystkich nadmiarowych białych znaków w środku tekst (jeżeli mamy dwie lub więcej spacji pomiędzy znakami to zostanie tylko jedna):

"Test    usuwania       białych znaków     \n     ".clean();

zwróci nam:

"Test usuwania białych znaków"

Pora na wyrażenia regularne

Wiemy jak "oczyścić" nasz tekst z białych znaków, a gdzie użyć wyrażeń regularnych ? Chociażby w metodzie test, która sprawdza podany ciąg znaków ze wzorcem podanym jako argument (oczywiście w postaci wyrażenia regularnego).

Jako drugi argument metoda test przyjmuje flagi wyrażenia regularnego takie jak i czy m (niezorientowanych w temacie odsyłam do lektury na stronach MDC):

"Kolejny test".test("test");

Powyższy kod zwróci nam wartość logiczną true, ponieważ dany tekst zgadza się z podanym wzorcem. Natomiast w sytuacji:

"Kolejny test".test("TEst");

Otrzymamy wartość logiczną false chyba, że ustawimy flagę ignorowania wielkości znaków:

"Kolejny test".test("TEst","i");

W tym wypadku zwrócona zostanie nam wartość true.

Metoda test jest idealna do walidacji formularzy - pola takie jak adres e-mail, adres strony WWW to typowe miejsca gdzie podczas walidacji korzysta się z wyrażeń regularnych.

Ostatnia z omawianych metod to metoda contains, która sprawdza czy w określonym ciągu znaków gdzie poszczególne elementy są oddzielone określonym separatorem występuje dany element.

Metoda ta pobiera jako argumenty szukany element i separator:

"a b c d e f g h".contains("i"," ");

Powyższy kod zwróci nam wartość false bo literki i nie ma w naszym ciągu znaków rozdzielanych spacjami, ale już kod:

"ab|cd|ef|gh".contains("gh","|");

Zwróci nam wartość true, bo element gh w tym ciągu rozdzielonym znakami "|" występuje.

Metoda ta jest przydatna zwłaszcza w wypadku miłośników funkcji explode i implode z PHP.

Podsumowanie

Poznaliśmy nowe możliwości obiektu String jakie oferuje nam MooTools 1.2. W koeljnej części poświęconej nowym możliwościom tego obiektu, zajmiemy się głównie metodami konwertującymi udostępnianymi przez framework.

Komentarze do wpisu "MooTools 1.2 - ciągi znaków cz. 1":

Jeszcze nie ma żadnych komentarzy. Twój może być pierwszy.

Dodaj komentarz:

Textile Lite włączony ( szczegółowy opis znaczników ):
*strong* | # lista numerowana | * lista wypunktowana | _em_ | __italic__ | "link":http:// | bq. cytat.