Aplikacje i usługi internetowe

Podobne dokumenty
JAVAScript tablice, przekazanie danych do funkcji, obiekty Date i window

1. Prawie wszystko jest obiektem (poza nullem i 'undefined'). 3. Dostęp do metod uzyskuje się analogicznie do właściwości:

Test przykładowy 2 PAI WSB Wrocław /06/2018

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Krótki kurs JavaScript

JavaScript funkcyjność

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).

Programowanie Komputerów

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Aplikacje i usługi internetowe

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Podstawy programowania skrót z wykładów:

Spra r wd w za z nie e popra r wn w ości c danych c w w form r u m larz r a z ch c :

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Bloki anonimowe w PL/SQL

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Języki skryptowe w programie Plans

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

Przydatne sztuczki - sql. Na przykładzie postgres a.

JavaScript jest językiem skryptowym interpretowanym przez przeglądarki WWW. Istnieją różne sposoby umieszczania kodu JavaScript w kodzie HTML

XML extensible Markup Language. część 5

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

MATERIAŁY DO ZAJĘĆ II

PROGRAMOWANIE W ŚRODOWISKU FLASH wykład 2

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Rys.2.1. Drzewo modelu DOM [1]

Cw.12 JAVAScript w dokumentach HTML

LibreOffice Calc VBA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Informatyka 1. Przetwarzanie tekstów

Wykład 2 Składnia języka C# (cz. 1)

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Technologie Informacyjne - Linux 3

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Podstawy i języki programowania

Java Podstawy. Michał Bereta

Podstawowe części projektu w Javie

JAVAScript w dokumentach HTML (1)

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wstęp do programowania. Różne różności

Podstawy JavaScript ćwiczenia

Definiowanie własnych klas

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Platformy Programistyczne Podstawy języka Java

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Podstawy Programowania C++

ForPascal Interpreter języka Pascal

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

JavaScript - korzenie

Języki i techniki programowania Ćwiczenia 2

Rozdzia l 3. Laboratorium 3. danych zawierajac

System operacyjny Linux

Wykład 03 JavaScript. Michał Drabik

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Tworzenie Stron Internetowych. odcinek 10

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

JavaScript. mgr inż. Remigiusz Pokrzywiński

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Oczywiście plik musi mieć rozszerzenie *.php

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

PHP: bloki kodu, tablice, obiekty i formularze

Inżynieria Wytwarzania Systemów Wbudowanych

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Właściwości i metody obiektu Comment Właściwości

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Microsoft IT Academy kurs programowania

Podstawy programowania

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Lekcja 6: Pascal. Procedura i funkcja

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PHP 5 język obiektowy

Funkcje i instrukcje języka JavaScript

Programowanie w Turbo Pascal

VBA praca z makrami w Excelu

1. Wprowadzenie do języka PHP

Języki formalne i automaty Ćwiczenia 6

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

JAVAScript w dokumentach HTML - przypomnienie

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

14. POZOSTAŁE CIEKAWE FUNKCJE

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Podstawy Programowania Podstawowa składnia języka C++

Transkrypt:

Aplikacje i usługi internetowe Podstawy Programowania Iwona Kochańska

Funkcje Aplikacje i usługi internetowe 2016/17 2/66

Funkcje Funkcje (podprogramy) pozwalaja wielokrotnie wykonywać powtarzalne operacje. Podstawowa struktura funkcji function nazwafunkcji ( parametr1, parametr2,...) { // blok instrukcji } nazwafunkcji - obowiazuj a te same zasady, co przy wyborze nazw zmiennych parametr1, parametr2,... - parametry wejściowe Aplikacje i usługi internetowe 2016/17 3/66

Funkcje Definicja funkcji: a i b to parametry wejściowe function wypiszparametry (a, b){ document. write (" argument1 : " + a + " </br >"); document. write (" argument2 : " + b + " </br >"); } Wywołanie funkcji: c i d to argumenty wejściowe var c = 3; var d = " Ala ma kota "; wypiszparametry (a, b); Aplikacje i usługi internetowe 2016/17 4/66

Funkcje Funkcja może zwracać wartość za pomoca instrukcji return function return } dodajdwieliczby (a, b){ a+b; Jeśli za instrukcja return nie ma żadnego wyrażenia, funkcja zwraca wartość undefined. W treści funkcji może znajdować się dowolna liczba instrukcji. Nazwy argumentów funkcji w jej wnętrzu sa dostępne jako zmienne. Odnosza się do wartości, które zostały w ich miejsce przekazane w wywołaniu funkcji. Aplikacje i usługi internetowe 2016/17 5/66

Funkcje Definicja funkcji: function return } dodajdwieliczby (a, b){ a+b; Wywołanie funkcji: var x = dodajdwieliczby (3,4) ; document. write (x); Wynik: 7 Wywołanie nazwy funkcji bez nawiasów () zwraca jej definicję var x = dodajdwieliczby ; document. write (x); Wynik: function dodajdwieliczby(a, b) { return a+b; } Aplikacje i usługi internetowe 2016/17 6/66

Funkcje Wartości zwracanej przez funkcję można użyć tak, jak zmiennej var text = Suma liczb wynosi + dodajdwieliczby (3,4) ; document. write ( text ); wynik: Suma liczb wynosi 7 document. write ( dodajdwieliczby (5,6) ); wynik: 11 Aplikacje i usługi internetowe 2016/17 7/66

Funkcje Nie jest konieczne przekazywanie do funkcji ścisłej liczby argumentów. Możliwe jest przekazanie argumentów przez tablicę arguments // definicja funkcji : function calculate (){ var arglength = arguments. length ; if ( arglength == 0){ console. warn ( Blad : Nie podales zadnych liczb ); } else if ( arglength == 1) { console. warn ( Podales tylko jedna liczbe : + arguments [0]) ; } else { var result = 0; for ( i = 0; i < arguments. length ; i ++) { result += arguments [ i]; } console. log ( result ); Aplikacje} i usługi internetowe 2016/17 8/66

Funkcje Przykład przekazania argumentów przez tablicę arguments // wywoanie funkcji x = suma (1, 123, 500, 115, 44, 88) ; // definicja funkcji function suma () { var i, sum = 0; for ( i = 0; i < arguments. length ; i ++) { sum += arguments [ i]; } return sum ; } Aplikacje i usługi internetowe 2016/17 9/66

Funkcje Argumenty przekazywane sa do funkcji przez wartość. Po wyjściu z funkcji wartości zmiennych a, b i c pozostaja niezmienione! var a = 5; var b = " Ala "; document. write (" Przed fun. a = "+a+" b = "+b+" </br >"); przyklad (a, b); document. write ("Po fun. a = "+a+" b = "+b+" </br >"); function a = 7; b = "ma kota "; } przyklad (a, b, c){ document. write ("W fun. a = "+a+" b = "+b+" </br >"); return a+b; Przed funkcja: a = 5 b = Ala W funkcji: a = 7 b = ma kota Po funkcji: a = 5 b = Ala Aplikacje i usługi internetowe 2016/17 10/66

Funkcje Jeśli definicja funkcji zawiera parametry wejściowe, ale w wywołaniu nie podamy takiej samej liczby argumentów, to brakujacym argumentom przypisywana jest wartość undefined function suma (a, b, c){ document. write (" Argument c w funkcji = " + c + " "); return a+b+c; } document. write (" Wynik dzialania funkcji = " + suma (2,3) ); Argument c w funkcji = undefined, wynik dzialania funkcji = NaN function suma (a, b, c){ if ( c === undefined ){ c = 0;} document. write (" Argument c w funkcji = " + c + " "); return a+b+c; } document. write (" Wynik dzialania funkcji = " + suma (2,3) ); Argument c w funkcji = 0, wynik dzialania funkcji = 5 Aplikacje i usługi internetowe 2016/17 11/66

Funkcje Podczas szukania zmiennej wewnatrz funkcji najpierw przeszukiwane jest środowisko lokalne i dopiero, gdy nie uda się jej tam znaleźć przeszukiwane jest główne środowisko. Dzięki temu zmienne znajdujace się wewnatrz funkcji moga zasłaniać zmienne z głównego środowiska o takich samych nazwach. var a = 3, b = 7; var text = ; var c = dodajdwieliczby (8,9) ; text += W programie glownym : + a = + a + b = + b + <br > ; document. write ( text ); function dodajdwieliczby (a, b) { text += W funkcji : + a = + a + b = + b + <br > ; return a+b; } wynik: W funkcji: a = 8 b = 9 Aplikacje i usługi internetowe 2016/17 12/66

Funkcje Zmienna utworzona w funkcji istnieje tylko w tej funkcji. var a = 3, b = 7; var c = pomnozdwieliczby (a, dodajdwieliczby (a, b)); document. write ( Wynik : +d); // Wynik : Unresolved variable or type d function dodajdwieliczby (a, b){ return a+b; } function pomnozdwieliczby (a, b){ var d = a* b; return d; } Aplikacje i usługi internetowe 2016/17 13/66

Funkcje Parametrem wejściowym funkcji może być wartość zwaracana przez inna funkcję var a = 3, b = 7; var c = pomnozdwieliczby (a, dodajdwieliczby (a, b)); document. write ( Wynik : +c); function dodajdwieliczby (a, b){ return a+b; } function pomnozdwieliczby (a, b){ return a* b; } wynik: 30 Aplikacje i usługi internetowe 2016/17 14/66

Funkcje Funkcja może być zdefiniowana jako wyrażenie: var c = function (a, b) { return a * b}; jest to funkcja anonimowa - nie posiada nazwy, można ja wywołać poprzez odwołanie do zmiennej, do której została przypisana: var c = function (a, b) { return a * b}; var d = c(4, 3); Aplikacje i usługi internetowe 2016/17 15/66

Funkcje co zwróci metoda typeof zawołana dla funkcji? var c = function (a, b) { return a * b}; document. write ( typeof (c)); wynik: function Obiekt reprezentowany przez funkcję można zamienić na łańcuch znaków: var c = function (a, b) { return a * b}; var txt = c. tostring (); document. write ( txt ); wynik: function (a, b) {return a * b} Aplikacje i usługi internetowe 2016/17 16/66

Funkcje co zwróci metoda typeof zawołana dla funkcji? function iloczyn (a, b) { return a * b}; document. write ( typeof ( iloczyn )); wynik: function Obiekt reprezentowany przez funkcję można zamienić na łańcuch znaków: function iloczyn (a, b) { return a * b}; var txt = iloczyn. tostring (); document. write ( txt ); wynik: function iloczyn(a, b) {return a * b} Aplikacje i usługi internetowe 2016/17 17/66

Funkcje Funkcja może byc utworzona przez specjalna funkcję JS - konstruktor Function() var iloczyn = new Function ("a", "b", " return a * b"); var x = iloczyn (4, 3); Ta metodę stosuje się rzadko! Aplikacje i usługi internetowe 2016/17 18/66

Typ Object Aplikacje i usługi internetowe 2016/17 19/66

Typ Object Obiekt, w przeciwieństwie do zmiennej typu prostego, może zawierać w sobie wiele wartości (typu prostego lub złożonego) Przykład: var osoba = { imie :" Jan ", nazwisko :" Kowalski ", wiek :40, wzrost :180}; lub: var osoba = { imie :" Jan ", nazwisko :" Kowalski ", wiek :40, wzrost :180 }; document. write ( osoba ); wynik: [object Object] Aplikacje i usługi internetowe 2016/17 20/66

Typ Object Obiekt może być utworzony za pomoca słowa kluczowego new var osoba = new Object (); osoba. imie = " Jan "; osoba. nazwisko = " Kowalski "; osoba. wiek = 40; osoba. wrost = 180; document. write ( osoba ); wynik: [object Object] Aplikacje i usługi internetowe 2016/17 21/66

Tworzenie obiektu za pomoca konstruktora Definiujac specjalna funkcję zwana konstruktorem możemy tworzyć wiele obiektów naszego własnego typu function osoba ( im, nazw, wiek, wzrost ) { this. imie = im; this. nazwisko = nazw ; this. wiek = wiek ; this. wzrost = wzrost ; } Zadaniem konstruktora jest określenie właściwości (properties) obiektu Słowo kluczowe this oznacza ten obiekt Aplikacje i usługi internetowe 2016/17 22/66

Tworzenie obiektu za pomoca konstruktora Przykład tworzenia obiektów za pomoca konstruktora: var osoba1 = new osoba (" Adam ", " Kowalski ", 40, 180) ; var osoba2 = new osoba (" Adam ", " Kwiatkowski ", 34, 170) ; document. write ( osoba1 ); wynik: [object Object] document. write ( osoba1. imie + " " + osoba1. nazwisko ); wynik: Adam Kowalski Aplikacje i usługi internetowe 2016/17 23/66

Wbudowane konstruktory JS W języku JavaScript istnieja konstruktory obiektów różnych typów, również prostych Jednak w większości przypadków nie ma potrzeby ich używania zamiast używać konstruktora: var x1 = new Object (); var x2 = new String (); var x3 = new Number (); var x4 = new Boolean (); var x5 = new Array (); var x6 = new Function (); lepiej zrobić tak: var x1 = {}; var x2 = ""; var x3 = 0; var x4 = false ; var x5 = []; var x6 = function () {}; Aplikacje i usługi internetowe 2016/17 24/66

Odwołania do obiektów - przez referencję Do zmiennych typu prostego odwołujemy się przez wartość var x = 15; var y = x; y *= 2; document. write ( " y = " + y + " x = " + x); wynik: y = 30 x = 15 Do obiektów odwołujemy się przez referencję, czyli adres w pamięci var x = new osoba (" Adam ", " Kowalski ", 40, 180) ; var y = x; // od tego momentu x i y sa referencjami do tego samego obiektu! y. imie = " Jan "; document. write ( " y. imie = " + y. imie + " x. imie = " + x. imie ); wynik: y.imie = Jan x.imie = Jan Aplikacje i usługi internetowe 2016/17 25/66

Dostęp do właściwości obiektu Do właściwości (properties) obiektu można się odwołać na trzy sposoby: objectname. property // osoba. imie objectname [" property "] // osoba [" imie "] objectname [ expression ] // x = " imie "; osoba [ x] Przykład: var x = new osoba (" Adam ", " Kowalski ", 40, 180) ; document. write (x[" imie "] + " " + x. nazwisko + " ma " + x[ wiek ] + " lat."); wynik: Adam Kowalski ma 40 lat. Aplikacje i usługi internetowe 2016/17 26/66

Dostęp do właściwości obiektu - pętla for.. in Do kolejnych właściwości (properties) obiektu można odwołać się poprzez pętlę for.. in var adas = new osoba (" Adam ", " Kowalski ", 40, 180) ; var text = ""; for (z in adas ) { text += adas [z] + " "; } document. write ( text ); function osoba ( im, nazw, wiek, wzrost ) { this. imie = im; this. nazwisko = nazw ; this. wiek = wiek ; this. wzrost = wzrost ; } wynik: Adam Kowalski 40 180 Aplikacje i usługi internetowe 2016/17 27/66

Dodawanie właściwości obiektu Do istniejacego obiektu można dodać właściwość: adas. kolor_oczu = " niebieski "; var text = ""; for (z in adas ) { text += adas [z] + " "; } document. write ( text ); function osoba ( im, nazw, wiek, wzrost ) { this. imie = im; this. nazwisko = nazw ; this. wiek = wiek ; this. wzrost = wzrost ; } wynik: Adam Kowalski 40 180 niebieski Aplikacje i usługi internetowe 2016/17 28/66

Usuwanie właściwości obiektu Właściwość można również usunać: delete adas. wiek ; var text = ""; for (z in adas ) { text += adas [z] + " "; } document. write ( text ); wynik: Adam Kowalski 180 niebieski document. write ( adas. wiek ); wynik: undefined Aplikacje i usługi internetowe 2016/17 29/66

Metody Metoda (method) to właściwość obiektu, która jest funkcja var osoba = { imie :" Jan ", nazwisko :" Kowalski ", wiek :40, wzrost :180, tozsamosc : function (){ return this. imie + " " + this. nazwisko ; } }; document. write ( osoba. tozsamosc ());// wypisanie tego, co zwraca metoda tozsamosc () wynik: Jan Kowalski document. write ( osoba. tozsamosc );// wypisanie metody tozsamosc () Aplikacje i usługi internetowe 2016/17 30/66 definicji wynik: function (){ return this.imie + " " + this.nazwisko; }

Metody Metoda (method) definiowana w konstruktorze: function osoba ( im, nazw, wiek, wzrost ) { this. imie = im; this. nazwisko = nazw ; this. wiek = wiek ; this. wzrost = wzrost ; this. tozsamosc = function (){ return this. imie + " " + this. nazwisko ; }; } var janek = new osoba (" Jan ", " Kowalski ", 34, 178) ; document. write ( osoba. tozsamosc ()); wynik: Jan Kowalski Aplikacje i usługi internetowe 2016/17 31/66

Data i czas Aplikacje i usługi internetowe 2016/17 32/66

Obiekt Date Obiekt Date pozwala określić rok, miesiac, dzień tygodnia, godzinę i inne informacje zwiazane z data i czasem Konstruktor Date() zwraca bieżac a datę i godzinę: document. write ( Date ()); wynik: Wed Dec 14 2016 00:01:46 GMT+0100 (Europa Zachodnia (czas stand.)) Utworzenie nowego obiektu typu Date: var teraz = new Date (); Aplikacje i usługi internetowe 2016/17 33/66

Obiekt Date Wypisanie daty z obiektu teraz: document. write ( teraz ); wynik: Wed Dec 14 2016 00:01:46 GMT+0100 (Europa Zachodnia (czas stand.)) document. write ( teraz. tostring ()); wynik: Wed Dec 14 2016 00:01:46 GMT+0100 (Europa Zachodnia (czas stand.)) Aplikacje i usługi internetowe 2016/17 34/66

Metody pobierajace właściwości obiektu Date metoda zwraca getdate() dzień jako liczba z zakresu od 1 do 31 getday() getfullyear() dzień tygodnia jako liczba z zakresu od 0 (niedziela) do 6 (sobota) gethours() godzina jako liczba z zakresu od 0 do 23 getmiliseconds() milisekundy jako liczba z zakresu od 0 do 999 getminutes() minuty jako liczba z zakresu od 0 do 59 getmonth() rok miesiac jako liczba z zakresu od 0 do 11 getseconds() sekundy jako liczba z zakresu od 0 do 59 gettime() czas jako liczba milisekund od 1 stycznia 1970 roku Aplikacje i usługi internetowe 2016/17 35/66

Obiekt Date - nazwa miesiaca Metoda getmonth() zwraca liczbę z zakresu od 0 do 11. Można ja wykorzystać jako indeks tablicy zawierajacej nazwy miesięcy: var miesiace = [ stycze, luty, marzec, kwiecie, maj, czerwiec, lipiec, sierpie, wrzesie, padzernik, listopad, grudzie ]; var teraz = new Date (); document. write ( miesiace [ teraz. getmonth () ]); wynik: grudzień Aplikacje i usługi internetowe 2016/17 36/66

Obiekt Date - godzina w formacie 12-godzinnym Metoda gethours() zwraca liczbę z zakresu od 0 do 23. Jak ja wyświetlić w formacie 12-godzinnym? var teraz = new Date (); var godzina = teraz. gethours (); if ( godzina > 12) { postfix = pm ; godzina = godzina - 12; } else { postfix = am ; } godzina = godzina + postfix ; document. write ( godzina ); wynik: 11 pm Aplikacje i usługi internetowe 2016/17 37/66

Obiekt Date - metoda toutcstring() Metoda toutcstring() konwertuje czas do standardu UTC: var teraz = new Date (); document. write ( </br > + teraz. tostring () + </br > ); document. write ( </br > + teraz. toutcstring () + </br > ); wynik: Wed Dec 14 2016 00:05:58 GMT+0100 (Europa Zachodnia (czas stand.)) Tue, 13 Dec 2016 23:05:58 GMT Aplikacje i usługi internetowe 2016/17 38/66

Obiekt Date - metoda todatestring() Metoda todatestring() zwraca datę: var teraz = new Date (); document. write ( </br > + teraz. tostring () + </br > ); document. write ( teraz. todatestring () + </br > ); wynik: Wed Dec 14 2016 00:05:58 GMT+0100 (Europa Zachodnia (czas stand.)) Wed Dec 14 2016 Aplikacje i usługi internetowe 2016/17 39/66

Obiekt Date - data inna niż bieżaca Konstruktor Date() umożliwia utworzenie obiektu reprezentujacego dowolna datę na 3 sposoby: new Date ( milliseconds ) new Date ( datestring ) new Date ( year, month, day, hours, minutes, seconds, milliseconds ) Przykłady: var d = new Date (86400000) ; var d = new Date (" October 13, 2014 11:13:00 "); var d = new Date (99,5,24,11,33,30,0) ; lub : var d = new Date (99,5,24,11,33) ; Aplikacje i usługi internetowe 2016/17 40/66

Obiekt Date - konstruktor z datestring Konstruktor Date() akceptuje łańcuchy znaków reprezentujacych datę zgodnie z formatami: typ przykład ISO Date "2015-03-25" Short Date "03/25/2015" Long Date "Mar 25 2015" lub "25 Mar 2015" Full Date "Wednesday March 25 2015" Aplikacje i usługi internetowe 2016/17 41/66

Metody zmieniajace właściwości obiektu Date metoda zwraca setdate() dzień jako liczba z zakresu od 1 do 31 setday() setfullyear() dzień tygodnia jako liczba z zakresu od 0 (niedziela) do 6 (sobota) sethours() godzina jako liczba z zakresu od 0 do 23 setmiliseconds() milisekundy jako liczba z zakresu od 0 do 999 setminutes() minuty jako liczba z zakresu od 0 do 59 setmonth() rok miesiac jako liczba z zakresu od 0 do 11 setseconds() sekundy jako liczba z zakresu od 0 do 59 settime() czas jako liczba milisekund od 1 stycznia 1970 roku Aplikacje i usługi internetowe 2016/17 42/66

Zmiana właściwości obiektu Date - przykłady ustawienie elementów daty: var d = new Date (); d. setfullyear (2020, 0, 14) ; // ustawienie daty 14.01.2020 d. setfullyear (2016) ; // ustawienie roku 2016 d. setdate (20) ; // ustawienie 20 dnia miesica dodanie określonej liczby dni do daty: var d = new Date (); document. write (d. todatestring () + " </br >"); d. setdate (d. getdate () + 100) ; document. write (d. todatestring ()); wynik: Wed Dec 14 2016 Fri Mar 24 2017 Aplikacje i usługi internetowe 2016/17 43/66

Wyrażenia regularne Aplikacje i usługi internetowe 2016/17 44/66

Wyrażenia regularne Wyrażenie regularne (regular expression, regex) to sekwencja znaków definiujacych pewien wzorzec, który chcemy odszukać w innym łańcuchu znaków. wyrażenia regularne rozpoczynaja się i kończa znakiem /, np: var regexp = / kot /; wyrażenia regularne to w języku JavaScript obiekty klasy RexExp. Można je tworzyć na dwa sposoby: var regexp = / kot /; lub var regexp = new RegExp (" kot "); zwykle wybieramy pierwszy (prostszy) sposób! Aplikacje i usługi internetowe 2016/17 45/66

Wyrażenia regularne - metoda search() do wyszukiwania wzorca w łańcuchu znaków stosuje się metodę search() var regexp = / kot /; var zdanie = " Ala ma kota i ten kot jest czarny "; var pos = zdanie. search ( regexp ); document. write ( pos ); wynik: 7 Przypomnienie: metodę search() można również wołać dla zmiennych typu string var wyraz = " kot "; var zdanie = " Ala ma kota i ten kot jest czarny "; var pos = zdanie. search ( wyraz ); document. write ( pos ); wynik: 7 Aplikacje i usługi internetowe 2016/17 46/66

Wyrażenia regularne - metoda replace() do zamiany wzorca w łańcuchu znaków na inny łańcuch służy metoda replace() var regexp = / Ala /; var zdanie = " Ala ma kota i ten kot jest czarny "; var text = zdanie. replace ( regexp, " Dorota "); document. write ( text ); wynik: Dorota ma kota i ten kot jest czarny Przypomnienie: metodę replace() można również wołać dla zmiennych typu string var wyraz = " Ala "; var zdanie = " Ala ma kota i ten kot jest czarny "; var text = zdanie. replace ( wyraz, " Dorota "); document. write ( text ); wynik: Dorota ma kota i ten kot jest czarny Aplikacje i usługi internetowe 2016/17 47/66

Wyrażenia regularne - metoda match() do sprawdzenia, czy w łańcuchu znaków występuje fragment pasujacy do wzorca, służy metoda match() metoda zwraca znaleziony fragment pasujacy do wzorca var regexp = / Ala /; var zdanie = " Ala ma kota i ten kot jest czarny "; var text = zdanie. match ( regexp ); document. write ( text ); wynik: Ala Aplikacje i usługi internetowe 2016/17 48/66

Obiekt RexExp - metoda test() do sprawdzenia, czy wzorzec występuje w łańcuchu znaków, służy metoda test() jeśli wzorzec występuje w łańcuchu znaków, metoda zwraca wartość true, w przeciwnym razie zwraca wartość false w przeciwieństwie do metod search() i replace(), metoda test() wołana jest na obiekcie reprezentujacym wyrażenie regularne! var regexp = / Ala /; var zdanie = " Ala ma kota i ten kot jest czarny "; var czy_jest = regexp. test ( zdanie ); document. write ( czy_jest ); wynik: true Aplikacje i usługi internetowe 2016/17 49/66

Obiekt RexExp - metoda exec() do sprawdzenia, czy w łańcuchu znaków występuje fragment pasujacy do wzorca, służy metoda exec() metoda zwraca znaleziony fragment pasujacy do wzorca metoda exec(), podobnie jak metoda test(), wołana jest na obiekcie reprezentuj acym wyrażenie regularne var regexp = / Ala /; var zdanie = " Ala ma kota i ten kot jest czarny "; var czy_jest = regexp. exec ( zdanie ); document. write ( czy_jest ); wynik: Ala var regexp = / kot / g; var zdanie = " Ala ma kota i ten kot jest czarny "; var czy_jest = regexp. exec ( zdanie ); document. write ( czy_jest ); wynik: kot, kot Aplikacje i usługi internetowe 2016/17 50/66

Wyrażenie regularne Symbole używane w wyrażeniach regularnych znak pasuje do. dowolnego znaku \w dowolnego znaku używanego w słowach ( litery a-z, A-Z, cyfry 0-9, podkreślenie) \W dowolnego znaku nie będacego znakiem używanego w słowach (przeciwieństwo znaku \w) \d dowolnej cyfry 0-9 \D dowolnego znaku nie będacego cyfra (przeciwieństwo znaku \d) \s znaku odstępu, tabulacji, powrotu karetki, nowego wiersza \S przeciwieństwo znaku \s Aplikacje i usługi internetowe 2016/17 51/66

Wyrażenie regularne Przykład: var regexp = /\w\s\d\s\d\w\w/; var zdanie = " Ala ma 9 kotów i tekoty s czarne "; var fragment = zdanie. match ( regexp ); document. write ( fragment ); wynik: a 9 kot Aplikacje i usługi internetowe 2016/17 52/66

Wyrażenie regularne Symbole używane w wyrażeniach regularnych znak pasuje do ^ poczatku łańcucha znaków $ końca łańcucha znaków \b odstępu, poczatku łańcucha, końca łańcucha oraz dowolnego znaku nie będacego cyfra ani litera [ ] dowolnego znaku podanego między nawiasami [^] dowolnego znaku z wyjatkiem podanych w nawiasach znaku przed kreska pionowa lub za nia \ znaku, który jednocześnie jest znakiem specjalnym wyrażeń regularnych (np. \^) () ograniczenie zakresu Aplikacje i usługi internetowe 2016/17 53/66

Wyrażenie regularne Przykłady: var regexp = /\b\w\w\w\w [!# @]$/; var zdanie = " Alama9kotów i te koty mówi miau!"; var fragment = zdanie. match ( regexp ); document. write ( fragment ); wynik: miau! var regexp = /( kot ) ( lama )/; var zdanie = " Alama9kotów i te koty mówi miau!"; var fragment = zdanie. search ( regexp ); document. write ( fragment ); wynik: 1 Aplikacje i usługi internetowe 2016/17 54/66

Wyrażenie regularne Modyfikatory używane w wyrażeniach regularnych znak i g m znaczenie wyszukiwanie bez względu na wielkość liter wyszukuje wszystkie wystapienia wzorca w łańcuchu znaków wyszukuje w wielu liniach tekstu Przykład: var zdanie = " Ala ma kota i ten kot jest czarny "; var pos = zdanie. search (/ ala /i); var pos2 = zdanie. search (/ ala /); document. write ( pos + " " + pos2 ); wynik: 0-1 Aplikacje i usługi internetowe 2016/17 55/66

Wyrażenie regularne Kwantyfikatory używane w wyrażeniach regularnych znak znaczenie n+ jeden lub więcej znaków lub elementów n n* zero lub więcej znaków lub elementów n n? zero lub jeden znak lub element n n{x} n{x,y} n{x,} sekwencja X znaków lub elementów n sekwencja od X do Y znaków lub elementów n sekwencja co najmniej X znaków lub elementów n Elementem może być wyrażenie umieszczone wewnatrz nawiasów. Aplikacje i usługi internetowe 2016/17 56/66

Kod pocztowy Wyrażenie regularne odpowiadajace polskiemu kodowi pocztowemu /[\ d ]{2} -[\ d ]{3}/ \d{2} - grupa dwóch cyfr \d{3} - grupa trzech cyfr Przykład: var codereg = /[\ d ]{2} -[\ d ]{3}/; var text = " Ala ma kota 80-288 Gdask "; var pos = text. search ( codereg ); // 12 var czy_jest = codereg. test ( text ); // true var kod = codereg. exec ( text ); // 80-288 text = " Ala ma kota 80-28 Gdask "; pos = text. search ( codereg ); // -1 czy_jest = codereg. test ( text ); // false kod = codereg. exec ( text ); // null Aplikacje i usługi internetowe 2016/17 57/66

Kod pocztowy Jak sprawdzić, czy użytkownik wpisał poprawny kod i tylko ten kod w polu formularza? /^[\ d ]{2} -[\ d ]{3} $/ \d{2} - grupa dwóch cyfr \d{3} - grupa trzech cyfr Przykład: var codereg = /^[\ d ]{2} -[\ d ]{3} $/; var text = " Ala ma kota 80-288 Gdask "; var pos = text. search ( codereg ); // -1 var czy_jest = codereg. test ( text ); // false var kod = codereg. exec ( text ); // null text = " 80-288 "; pos = text. search ( codereg ); //0 czy_jest = codereg. test ( text ); // true kod = codereg. exec ( text ); // 80-288 Aplikacje i usługi internetowe 2016/17 58/66

Atomy Obejmujac części wyrażenia regularnego w nawiasy tworzymy tzw. atomy. Kolejne atomy zawieraja kolejne części znalezionego tekstu, do których można się indywidualnie odwołać. Przykład: var regexp = /([\ d ]{2}) -([\d ]{3}) -([\d ]{4}) /; var text = " 58-347 -2004 "; var kod = text. match ( regexp ); for (i =0; i<kod. length ; i ++) { document. write ( kod [i] + </br > ); } Aplikacje i usługi internetowe 2016/17 59/66

Referencja wsteczna - odwołanie się do atomów Wykorzystanie obiektu RegExp: var regexp = /([\ d ]{2}) -([\d ]{3}) -([\d ]{4}) /; var text = " 58-347 -2004 "; var kod = text. match ( regexp ); document. write ( RegExp.$1 + </br > ); document. write ( RegExp.$2 + </br > ); document. write ( RegExp.$3 + </br > ); wynik: 58 347 2004 Aplikacje i usługi internetowe 2016/17 60/66

Referencja wsteczna - odwołanie się do atomów Atomy w metodzie replace(): var regexp = /([\ d ]{2}) -([\d ]{3}) -([\d ]{4}) /; var text = " 58-347 -2004 "; var textreplaced = text. replace ( regexp, " $3 $2 $1"); document. write ( textreplaced + </br > ); wynik: 2004 347 58 Aplikacje i usługi internetowe 2016/17 61/66

Numer telefonu Jak sprawdzić, czy użytkownik wpisał poprawny nr telefonu i tylko ten numer? /^\(?([\ d ]{2}) \)?[ -.]([\ d ]{3}) [ -.]([\ d ]{4}) $/ Przykład: var codereg = /^\(?([\ d ]{2}) \)?[ -.]([\ d ]{3}) [ -.]([\ d ]{4}) $ /; var text = " 58 347 2004 "; var pos = text. search ( codereg ); //0 var czy_jest = codereg. test ( text ); // true var kod = codereg. exec ( text ); // 58 347 2004,58,347,2004 var kod2 = text. match ( codereg ); // 58 347 2004,58,347,2004 Aplikacje i usługi internetowe 2016/17 62/66

Adres e-mail Jak sprawdzić, czy użytkownik wpisał poprawny adres e-mail? /[ -\w.]+ @([A-z0-9][ -A-z0-9]+\.) +[A-z ]{2,4}/ Przykład: var codereg = /[ -\w.]+ @([A-z0-9][ -A-z0-9]+\.) +[A-z ]{2,4}/ g; var text = " iwona@gmail. com58 347 2004 ul. Narutowicza ab@g. gom abb@gmail. com "; var pos = text. search ( codereg ); //0 var czy_jest = codereg. test ( text ); // true var kod = codereg. exec ( text ); // abb@gmail.com, gmail. var kod2 = text. match ( codereg ); // iwona@gmail.com, abb@gmail. com document. write ( pos + </br > ); document. write ( czy_jest + </br > ); document. write ( kod + </br > ); document. write ( kod2 + </br > ); Aplikacje i usługi internetowe 2016/17 63/66

Adres strony www Jak sprawdzić, czy użytkownik wpisał poprawny adres www? /((\ bhttps?:\/\/) (\ bwww \.) )\S*/ Przykład: var codereg = /((\ bhttps?:\/\/) (\ bwww \.) )\S*/g; var text = " iwona@gmail. com58 www. wp. pl ab@g. gom abb@gmail. com http :// pg.edu.pl "; var pos = text. search ( codereg ); // 18 var czy_jest = codereg. test ( text ); // true var kod = codereg. exec ( text ); // http :// pg.edu.pl, http ://, http ://, var kod2 = text. match ( codereg ); // www.wp.pl, http :// pg.edu. pl document. write ( pos + </br > ); document. write ( czy_jest + </br > ); document. write ( kod + </br > ); document. write ( kod2 + </br > ); Aplikacje i usługi internetowe 2016/17 64/66

Adres strony www - wyniki metody match() var codereg = /((\ bhttps?:\/\/) (\ bwww \.) )\S*/g; var text = " iwona@gmail. com58 www. wp. pl ab@g. gom abb@gmail. com http :// pg.edu.pl "; var kod2 = text. match ( codereg ); for (i =0; i< kod2. length ; i ++) { document. write ( kod2 [i] + </br > ); } wynik: www.wp.pl http://pg.edu.pl Aplikacje i usługi internetowe 2016/17 65/66

Podział tekstu na słowa przy pomocy metody split() var text = " Ala ma kota i ten kot jest czarny "; var textsplit = text. split (/\ W +/) ; for ( x =0; x< textsplit. length ; x ++) { document. write ( textsplit [x]+" </br >"); } wynik: Ala ma kota i ten kot jest czarny Aplikacje i usługi internetowe 2016/17 66/66