JavaScript - sprawdzanie ciągów znakowych, ciągi znakowe
| DZIAŁANIE: |
Sprawdzanie maile (indexof, lastindexof)Sprawdzanie niedozwolonych znaków (indexof, chartAt)Sprawdzanie nazwy użytkownika (substring)Sprawdzanie daty ( split ) |
Kod:

Ewentualne Objaśnienia:
Sprawdzenie poprawności adresu e-mail mieliśmy poprzez wyrażenie regularne w przykładzie 32form_praktyczne_prz.html . Tutaj mamy również podobne zadanie zrealizowane poprzez JS jednak za pomocą innych narzędzi związanych z obsługą ciągów tekstowych. Jak sami sprawdzicie nie jest to wcale dobre rozwiązanie. Zaprezentowałem tutaj kilka przykładów w celu pokazania działania kilku funkcji JS związanych z obsługą ciągów znakowych. Mimo wszystko podkreślam, że wyrażenia regularne to dużo lepsze i potężniejsze narzędzie :-)
1.Sprawdzenie maila - funkcje indexOf oraz lastIndexOf
Funkcja indexOf już ją pokazywałem, sprawdzamy nią czy dany ciąg (zmienna)
zawiera inny ciąg czy też znak. Jeśli nie zawiera zwróci wartość -1, jeśli
zawiera zwróci nr znaku. Na przykład jeśli sprawdzimy czy tekst "kalafior"
zawiera literkę "f" otrzymamy wynik 4 (5 pozycja słowa kalafior). Metoda
lastIndexOf działa bardzo podobnie jednak zwraca ostatnie wystąpienie
szukanego ciągu/znaku. Na przykład dla 'kalafior' dla literki 'a' zostało
by zwrócone 3, bo ostatnia literka 'a' znajduje się na 3 pozycji (4znak) w
słowie 'kalafior'.
Na tych dwóch funkcjach opiera się nasza pierwsza funkcja :
- sprawdzamy położenie znaku @, ostatniej kropki oraz spacji
- email jest zły gdy :
- nie ma małpy
- małpa jest na początku (położenie 0)
- nie ma kropki
- ostatnia kropka jest zaraz za małpą
- po ostatniej kropce nie ma żadnego znaku
- występuje spacja
- jeśli powyższe warunki nie są spełnione (pierwszy if) e-mail jest
(teoretycznie) poprawny, w przeciwnym razie jest zły .
2.Sprawdzanie niedozwolonych znaków - funkcja chartAt
Funkcja chartAt zwraca nam znak, który jest położony na danej pozycji w
ciągu. Na przykład zapis (zmienna slowo = "makaron") slowo.chartAt(2)
zwróci nam 'k' . No i tak tutaj nasza funkcja jako parametry przyjmuje ciąg,
który sprawdzamy oraz ciąg, który zawiera niedozwolone znaki (ja tutaj podałem
kilka takich znaków).
- robimy pętle po wszystkich niedozwolonych znakach
- do zmiennej znak przypisujemy dany niedozwolony znak
- sprawdzamy poprze indexOf czy nasz testowany ciąg zawiera taki znak, jeśli
zawiera dopisujemy taki znak do zmiennej info
- na końcu sprawdzamy czy zmienna info zawiera jest pusta. Jeśli tak to
przeszukiwany ciąg nie zawierał żadnego złego znaku, jeśli nie tzn., że zawierał
3.Określanie nazwy użytkownika z podanego e-mail'a - funkcja substring
Funkcja substring pobiera nie tylko jeden znak tak jak chartAt, ale daje
możliwość pobrania wielu znaków z danego ciągu. Jako parametry podajemy, od
którego znaku ma zacząć pobierać oraz ostatni znak (na którym ma zakończyć, ale
jego nie dodaje do zwracanego ciągu). Na przykład dla zmiennej slowo =
"komputer" zapis slowo.substring(0,4) zwróciłby słowo 'komp' .
Na tej funkcji właśnie opiera się nasza funkcja pokazująca (wyciągająca) nazwę
użytkownika z danego maila :
- sprawdzamy czy w ogóle w podanym adresie jest znak małpy, jeśli nie to pojawia
się stosowny alert
- przez substring pobieramy tekst od znaku 0 (od początku), aż do znaku @ (ale
bez niego, bo tak działa substring)
4.Sprawdzanie poprawności daty - funcja split
Funkcja split podobnie jak i w PHP służy generalnie do tego samego -
rozdzielenia jakiegoś ciągu na tablicę (w moim kursie PHP poczytaj o explode i
split). Jako parametr należy jej podać jaki znak ma być momentem rozdzielenia,
podziału.
No i tak mamy nasz przykład :
- dzielimy podaną datę do tablicy d_tab (rozdzielnikiem jest znak '/')
- sprawdzamy, data jest dobra gdy :
- utworzona tablica składa się z 3 elementów (miesiąc, dzień,
rok)
- miesiąc to wartość <1,12> , dzień to wartość <1,31> rok to
wartość <0,99> ( czyli odpowiednio d_tab[0] przechowuje miesiące, d_tab[1] dni
itd. )
Przedstawione funkcje są bardzo przydatne pamiętaj o tym ! Nie mniej dalej opowiem trochę o wyrażeniach regularnych, które jak wspominałem są bardzo ważnym narzędziem w każdym chyba języku programowania (przynajmniej w tych, które miałem okazję poznać).