OGGETTI in JavaScript
Volendo fare una disquisizione esaustiva sugli oggeti in JavaScript, si dovrebbe affrontare un discorso abbastanza complesso, non certo per l'utilità o meno degli oggetti, unanimamente ricononosciuta, ma per una molteplicità di motivi che vi risparmio, non ultimo il fatto che le stesse cose si possono fare in più modi, ma io mi limiterò a uno solo.
Gli OGGETTI su cui si lavorare ricadono tutti in una di queste quattro categorie:
- definiti dall’utente;
- predefiniti in JavaScript;
- predefiniti nel Browser Object Model (BOM);
- predefiniti nel Document Object Model (DOM).
- Gli oggetti definiti dall'utente, lo dice la parola stessa e li vedremo per primi.
- Gli oggetti PREDEFINITI JavaScript fanno parte dell'implementazione del linguaggio,
senza riferimento al browser, quindi sempre disponibili e servono come involucri per i
tipi di dato relativi.e sono:
Number, Boolean, String, Math, Date,, RegExp, Array e function,
oltre Object, l’oggetto progenitore di tutti.
Inoltre javascript possiede alcune funzioni e metodi predefiniti, che non appartengono ad oggetti.
- Il Browser Object Model (BOM) è un insieme di oggetti ereditati dal browser in cui vengono eseguite le applicazioni JavaScript.
- Il Document Object Model (DOM) descrive gli elementi che costituiscono un documento come un insieme di nodi collegati tra loro mediante una struttura gerarchica ad albero, e fornisce una ricostruzione virtuale e un meccanismo per accedere ai singoli nodi di una pagina, leggerne il contenuto e crearne di nuovi.
10. Oggetti definiti dall'utente
Partiamo dal presupposto che dobbiamo realizzare un programma che gestisca sia l'elaborazione dei dati
di un rettangolo, sia l'elaborazione di operazioni aritmetiche.
Ipotizziamo anche che siamo dei programmatori ordinati e precisi e vogliamo tener separate le variabili e
le funzioni che riguardano il rettangolo da quelle che riguardano le operazioni matematiche.
JavaScript, attraverso gli OGGETTI, offre una buona soluzione, infatti
gli OGGETTI consentono di organizzare le variabili e le funzioni in gruppi logici attraverso il
raggrumamento di proprietà e metodi:
Le PROPRIETÀ sono variabili ACCESSIBILI SOLO attraverso l'OGGETTO in cui sono state definite.
I METODI sono funzioni ACCESSIBILI SOLO attraverso l'OGGETTO in cui sono state definite.
Richiedendo che ogni accesso alle proprietà e ai metodi passi attreverso l'oggetto che li contiene.
Ma torniamo al nostro esempio e definiamo l'oggetto rettangolo e l'oggetto operazioni, così come in JavaScript si definisce ogni altro oggetto.
Creazione dell'oggetto Rettangolo:var Rettangolo = { perimetro: function(b, a){ p = ((2 * b)+(2 * a)); return p } }; var c = Rettangolo.perimetro(5, 4); document.write (c);
Creazione dell'oggetto Operazioni:var Operazioni = { aritmetiche: function(i, b, a){ switch (i) { case 1: op = (b * a); break case 2: op = (b / a); break case 3: op = (b + a); break default : op = (b - a); } return op } }; var c = Operazioni.aritmetiche(4, 12, 4); document.write (c);
nel primo caso, con i lati 5 e 4, in uscita avremo 18; nel secondo caso avremo il risultato in base al primo parametro che la chiamata passerà scegliendo così l'operazione da eseguire. Ma l'esempio serve solo a dimostrare che una volta creati i due oggetti: Rettangolo e Operazioni si può accedere ai sui membri solo attraverso il nome del'oggetto creato:Rettangolo.perimetro(b, a);
eOperazioni.aritmetiche(i, b, a);
IMPORTANTE Per far riferimento alle proprietà e ad altri metodi dell'oggetto in cui sono definiti, i metodi devono utilizzare il nome dell'oggetto o la parola chiave this. Va sottolineato che omettendo this, Javascript cercherà le variabili col nome dato all'interno del metodo (variabili locali) o tra le variabili globali, e non tra le proprietà dell'oggetto. esempio col nome dell'Oggetto:var Esempio = { propA : 3, propB : 4, funzC : function(){ p = (Esempio.propA * Esempio.propB); return p } }; var c = Esempio.funzC(); document.write (c);
esempio Con this:var Esempio = { propA : 3, propB : 4, funzC : function(){ p = (this.propA * this.propB); return p } }; var c = Esempio.funzC(); document.write (c);
in uscita avremo 12. esempio senza il nome dell'oggeto e senza this:var Esempio = { propA : 3, propB : 4, funzC : function(){ p = (propA * propB); return p } }; var c = Esempio.funzC(); document.write (c);
In uscita otterrommo undefined o NaN, perchè propA e propB non sono variabili locali o globali al metodo funzC! per funzionare avremmo dovuto scrivere così:var Esempio = { funzC : function(){ propA = 3; propB = 4; p = (propA * propB); return p } }; var c = Esempio.funzC(); document.write (c);
Ma in questo caso propA e propB non sono più proprità dell'oggetto Esempio, ma variabili locali del metodo funzC!
11. Oggetti Predefiniti in Javascript
Oggetto Object
METODO | DESCRIZIONE |
---|---|
escape() | restituisce una stringa in cui tutti i caratteri non-alfanumerici sono tradotti |
nei loro equivalenti numerici | |
eval() | accetta una stringa e la valuta come codice JavaSscrip |
Proprietà | DESCRIZIONE |
---|---|
constructor | specifica la funzione che ne crea il prototipo |
prototype | permette al programmatore di aggiungere proprietà alle istanze di oggetto generico |
Oggetto Number
METODO | DESCRIZIONE |
---|---|
toSource() | restituisce la rappresentazione come stringa dell'oggetto |
toString() | rappresentazione come stringa di un oggetto |
value0f() | restituisce il valore primitivo di un oggetto come numero |
Proprietà | DESCRIZIONE |
---|---|
number.MAX_VALUE | massimo numero rappresentabile |
number.MIN_VALUE | minimo numero rappresentabile |
NaN | valore speciale: "Not a Number" |
number.NEGATIVE INFINITY | valore speciale: -infinito |
number.POSITIVE_ INFINITY | valore speciale: +infinito |
prototype | permette di aggiungere proprietà all'oggetto number |
Oggetto String
METODO | DESCRIZIONE |
---|---|
anchor() | crea un'istanza del tag <a> attorno alla stringa oggetto il cui attributo name |
ha il valore della stringa passata | |
big() | converte la stringa in un'istanza del tag <big> |
blink() | converte la stringa in un'istanza del tag <blink> |
bold() | converte la stringa in un'istanza del tag <bold> |
charAt() | restituisce il carattere corrispondente all'indice passato |
charCodeAt() | restituisce il codice del carattere corrispondente all'indice passato |
concat() | concatena la stringa oggetto con la stringa argomento e restituisce il risultato |
fixed() | converte la stringa in un'istanza del tag <tt> |
fontcolor() | modifica l'attributo colore di un'istanza del tag <font> |
fontsize() | modifica l'attributo dimensione di un'istanza del tag <font> |
fromCharCode() | costruisce la stringa a partire dai codici ASCII dei caratteri |
index0f() | restituisce l'indice della prima occorrenza della stringa argomento nell'oggetto stringa |
a partire dalla posizione specificata dal secondo argomento (opzionale) | |
italics() | converte la stringa in un'istanza del tag <i> |
lastIndex0f() | restituisce l'indice dell'ultima occorrenza della stringa argomento nell'oggetto stringa |
a partire dalla posizione specificata dal secondo argomento (opzionale) | |
link() | crea un'istanza del tag <a> attorno alla stringa oggetto il cui attributo href ha il |
valore della stringa passata | |
match() | restituisce ('array dei match trovati sulla base dell'espressione regolare passata |
come argomento | |
replace() | effettua l'operazione "trova_e_sostituisci" usando l'espressione regolare e la stringa |
da sostituire passate come argomento | |
search() | restituisce l'indice della locazione del primo match trovato con l'espressione |
regolare passata | |
slice() | restituisce la stringa compresa tra l'indice iniziale e finale passati come argomenti |
small() | converte la stringa in un'istanza del tag < smal l> |
split() | restituisce la stringa spezzata in segmenti come definito dalla stringa passata al metodo |
strike() | converte la stringa in un'istanza del tag <strike> |
sub() | converte la stringa in un'istanza del tag <sub> |
substr() | restituisce la stringa che inizia alla posizione data dal primo argomento e lunga tanti |
caratteri quanti specificati dal secondo argomento | |
substring() | restituisce la stringa che inizia alla posizione data dal primo argomento e finisce |
alla posizione recedente all'indice specificato dal secondo argomento | |
sup() | converte la stringa in un'istanza del tag <sup> |
toLowerCase() | converte tutti i caratteri in minuscole |
toSource() | restituisce la rappresentazione della stringa passata |
toString() | restituisce i caratteri passati come tipo stringa |
toUpperCase() | converte tutti i caratteri in maiuscole |
Proprietà | DESCRIZIONE |
---|---|
lenght | restituisce la lunghezza della stringa |
prototype | permette al programmatore di aggiungere proprietà alle istanze di oggetto string |
Oggetto Math
METODO | DESCRIZIONE |
---|---|
abs() | valore assoluto |
acos() | arcocoseno in radianti |
asin() | arcoseno in radianti |
atan() | arcotangente in radianti |
atan2() | arcotangente in radianti del quoziente degli argomenti |
ceil() | primo intero maggiore o uguale |
cos() | coseno del valore passato |
exp() | costante naturale e di eulero elevata all'argomento passato |
floor() | primo intero minore o uguale all'argomento |
log() | logaritmo in base naturale e del valore passato |
max() | il massimo dei due argomenti passati |
min() | il minimo dei due argomenti passati |
pow() | potenza del primo argomento elevato al secondo argomento |
random() | numero casuale tra O e 1 |
round() | arrotondamento all'intero più vicino |
sin () | seno dell'argomento |
sqrt() | radice quadrata dell'argomento |
tan() | tangente del valore passato |
toSource() | codice sorgente di un oggetto |
toString() | rappresentazione come stringadiunoggetto |
Proprietà | DESCRIZIONE |
---|---|
math.E | restituisce la costante di eulero |
math.LN2 | restituisce il logaritmo naturale di 2 |
math.LN10 | restituisce il logaritmo naturale di 10 |
math.LOG2E | restituisce il logaritmo in base 2 di E. |
math.LOG10I | restituisce il logaritmo in base 10 di E. |
math.PI | restituisce il pi greco |
math.SQRT1_2 | restituisce la radice quadrata di 0.5 |
math.SQRT2 | restituisce la radice quadrata di 2 |
Oggetto Date
METODO | DESCRIZIONE |
---|---|
getDate() | restituisce il giorno del mese (1-31) |
getDay() | restituisce il giorno della settimana (0-6) |
getFullYear() | restituisce l'anno (4 cifre) |
getHours() | restituisce l'ora del giorno (0-23) |
getMilliseconds() | restituisce i millisecondi (0-999) |
getMinutes() | restituisce i minuti nell'ora (0-59) |
getMonth() | restituisce il mese dell'anno (0-11) |
getSeconds() | restituisce i secondi nel minuto (0-59) |
getTime() | restituisce i millisecondi dal 1/1/1970 |
getTimeZoneOffset() | restituisce i minuti di differenza tra GMT/UTC |
getUTCDate() | restituisce il giorno del mese secondo l'Universal Time |
getUTCDay() | restituisce il giorno della settimana secondo l'Universal Time |
getUTCFullYear() | restituisce l'anno (4 cifre) secondo l'Universal Time |
getUTCHours() | restituisce l'ora del giorno (0-23) secondo l'Universal Time |
getUTCMilliseconds() | restituisce i millisecondi (0-999) secondo l'Universal Time |
getUTCMinutes() | restituisce i minuti nell'ora (0-59) secondo l'Universal Time |
getUTCMonth() | restituisce il mese dell'anno (0-11) secondo l'Universal Time |
getUTCSeconds() | restituisce i secondi nel minuto (0-59) secondo l'Universal Time |
getYear() | restituisce gli anni trascorsi dal 1900 |
parse () | converte la stringa rappresentante una data in millisecondi |
setDate() | aggiorna il giorno del mese (1-31) |
setFullYear() | aggiorna l'anno (4 cifre) |
setHours() | aggiorna l'ora del giorno (0-23) |
setMilliseconds() | aggiornai millisecondi |
setMinutes() | aggiorna i minuti nell'ora (0-59) |
setMonth() | aggiorna il mese dell'anno (0-11) |
setSeconds() | aggiorna i secondi nel minuto (0-59) |
setTime() | aggiorna i millisecondi trascorsi dal 1/1/1970 ore 00:00:00 |
setUTCDate() | aggiorna il giorno del mese (1-31) secondo l'Universal Time |
setUTCFullYear() | aggiorna l'anno (4 cifre) secondo l'Universal Time |
setUTCHours() | aggiorna l'ora del giorno (0-23) secondo l'Universal Time |
setUTCMilliseconds() | aggiorna i millisecondi secondo l'Universal Time |
setUTCMinutes() | aggiorna i minuti nell'ora (0-59) secondo l'Universal Time |
setUTCMonth() | aggiorna il mese dell'anno (0-11) secondo l'Universal Time |
setUTCSeconds() | aggiorna i secondi nel minuto (0-59) secondo l'Universal Time |
setYear() | aggiorna il numero di anni trascorsi dal 1900 |
toGMTString() | trasforma una data in stringa (universal format) |
toLocaleString() | trasforma una data in stringa (formato locale) |
toSource() | restituisce il source dell'oggetto date |
toString() | trasforma una data in stringa (formato locale) |
toUTCString() | trasforma una data in stringa (universal time) |
UTC() | converte valori separati da virgole in millisecondi UTC |
value0f() | restituisce l'equivalente di una data in millisecondi |
Proprietà | DESCRIZIONE |
---|---|
prototype | permette al programmatore di aggiungere proprietà alle istanze di oggetto date |
Oggetto Array
METODO | DESCRIZIONE |
---|---|
concat() | concatena l'array oggetto con l'array argomento |
join() | concatena tutti gli elementi di un array in una stringa |
pop () | cancella l'ultimo elemento di un array |
push() | aggiunge un elemento alla fine di un array |
reverse() | rovescia l'ordine in cui gli elementi compaiono in un array |
shift() | cancella gli elementi in cima a un array |
slice() | restituisce una porzione di un array |
sort() | ordina gli elementi di un array |
splice () | inserisce e rimuove elementi da un array |
toSource() | converte gli elementi in una stringa con parentesi quadrate |
toString() | converte gli elementi di un array in una stringa |
unshift() | aggiunge elementi in cima a un array |
value0f() | restituisce una stringa di elementi separati da virgole |
Proprietà | DESCRIZIONE |
---|---|
index | per un array creato da un match di esp essioni regolari, restituisce l'indice |
della locazione dove è avvenuto il match | |
input | per un array creato da un match di espressioni regolari, restituisce |
la stringa originale | |
length | restituisce il numero di elementi in un array |
prototype | permette di aggiungere nuove proprietà e metodi alle istanze di un oggetto array |
Oggetto Function
METODO | DESCRIZIONE |
---|---|
applY() | permette di applicare il metodo di un altro oggetto |
call() | permette di chiamare il metodo di un altro oggetto |
toString() | restituisce il testo che rappresenta il codice sorgente della funzione |
Proprietà | DESCRIZIONE |
---|---|
arguments | restituisce il riferimento a un oggetto che contiene gli argomenti passati alla funzione |
caller | se esiste restituisce il riferimento alla funzione invocante |
lenght | restituisce il numero degli argomenti passati |
prototype | permette al programmatore di aggiungere proprietà alle istanze di oggetto function |
Oggetto RegExp
MODELLI DI RICERCA (Espressioni regolari)
Le espressioni regolari sono MODELLI di sequenze di caratteri
che definiscono gli schemi che possono essere utilizzati per
effettuare ricerche e sostituzioni all'interno di stringhe.
Questi MODELLI servono a
ricercare e confrontare combinazioni di caratteri in una stringa.
Il modello di ricerca (L'espressione regolare)
può essere creato in due modi equivalenti:
1) var nomeEspRegolare = /modello/ [ modificatore]
2) var nomeEspRegolare = new RegExp ("modello" [, "modificatore"])
modello
è la combinazione di caratteri (o sottostringa) che si vuole cercare.
modificatore
(o flag
)
parametro opzionale che può assumere i seguenti valori:
g ricerca globale per tutte le occorrenze di modello
i ignora differenze maiuscolo/minuscolo
gi entrambe le opzioni precedenti.
CARATTERI SPECIALI PER ESPRESSIONI REGOLARI
La sottostringa usata per modello può contenere
anche caratteri speciali che servono
per particolari direttive di ricerca.
I caratteri sono i seguenti:
CARATTERE | DESCRIZIONE |
---|---|
\ | è il carattere backslash che viene usato come carattere di escape per dare |
un particolare significato al carattere che lo segue immediatamente. Ad | |
esempio, n corrisponde al carattere n, ma \n corrisponde al carattere di | |
nuova riga. Inoltre caratteri speciali possono essere identificati | |
letteralmente se preceduti dal backslash; ad esempio \n corrisponde al fine | |
riga, ma \\n corrisponde alla sequenza di caratteri \n; + è un carattere | |
speciale, ma se si vuole inserire nella stringa di ricerca il carattere più | |
occorre scriverlo preceduto dal backslash \+ | |
^ | la corrispondenza è l'inizio del testo o della linea. Ad esempio il modello |
/^S/ troverà corrispondenza in "Soltanto" ma non in " Lui Solo". | |
$ | la corrispondenza è la fine del testo o della linea. Ad esempio il modello |
/po$/ troverà corrispondenza in "pippo" ma non in "pollo". | |
* | la corrispondenza è il carattere che precede l'asterisco, trovato zero o più |
volte. Ad es . /zo*/ trova corrispondenza in "z" , in "zo", in "zoo". | |
+ | la corrispondenza è il carattere che precede il segno più, trovato una o più |
volte. Ad es . /zo*/ trova corrispondenza in "zo" e in "zoo" ma non in "z". | |
? | la corrispondenza è il carattere che precede il punto interrogativo, trovato |
zero o una volta. Ad es . /zo*/ trova corrispondenza in "z" e in "zo" ma non in "zoo". | |
. | il punto equivale ad ogni singolo carattere, eccetto al carattere di nuova riga (\n) |
(modello) | la corrispondenza è sempre rispetto alla stringa modello. Ma il risultato |
del confronto (la sottostringa trovata nella stringa oggetto della scansione) | |
viene conservato negli elementi [0] [N] dell'array che viene | |
creato con exec o match o nelle proprietà $1 ...$9 dell'oggetto predefinito RegExp. | |
| | equivale ad un or, in quanto la corrispondenza viene cercata o con il testo |
prima o con il testo dopo il carattere | . Ad esempio /pi|po/ troverà | |
corrispondenza sia in "pino" che in "tipologia". | |
{ n } | n è un numero intero positivo. La corrispondenza si ha per una |
sottostringa formata dal numero di occorrenze n del carattere | |
immediatamente precedente. /z{3}/ trova corrispondenza nelle prime tre z | |
di "zzzzz" ma non in quella di "zoo". | |
{ n , } | n è un numero intero positivo. La corrispondenza si ha per una |
sottostringa formata da un numero di occorrenze almeno n del carattere | |
immediatamente precedente. /z{3,}/ trova corrispondenza nelle z di | |
"zzzzz" ma non in "zoo" o "uzzo". | |
{ n , m } | n ed m sono interi positivi. Il confronto è positivo per un numero di |
occorrenze non inferiore ad n e non superiore ad m del carattere | |
immediatamente precedente. /z{2,3}/ trova corrispondenza nelle z di | |
"zzzzz" e in "uzzo" ma non in "zoo". | |
[ xyz ] | i caratteri tra le parentesi quadre costituiscono un insieme di caratteri; la |
corrispondenza si ha per uno dei caratteri dell'insieme. /gatt[oi]/ troverà | |
corrispondenza in "gatto" e "gatti" ma non in "gatta" e "gatte" | |
[^ xyz ] | i caratteri tra le parentesi quadre costituiscono un insieme negativo di |
caratteri; la corrispondenza si ha per qualunque dei caratteri non inclusi | |
dell'insieme. /gatt[^ae]/ troverà corrispondenza in "gatto", "gatti" e | |
"gattuccio", ma non in "gatta" e "gatte". | |
[ a-c ] | i caratteri tra le parentesi quadre costituiscono i limiti inferiore e superiore |
di un range costituente l'insieme di caratteri adiacenti. | |
[^ a-c ] | i caratteri tra le parentesi quadre costituiscono i limiti inferiore e superiore |
di un range costituente l'insieme negativo di caratteri adiacenti. | |
\b | corrisponde a "fine parola". /o\b/ corrisponde alla o di "atto", ma non trova |
corrispondenza in "ottanta". | |
\B | corrisponde ad un punto di delimitazione che non è "fine parola". |
/o\B/ corrisponde alla o di "ottanta", ma non trova corrispondenza in "atto". | |
\d | corrisponde ad un carattere rappresentante un numero. Equivale a [0-9] |
\D | corrisponde a qualunque carattere ad eccezione di caratteri numerici. |
Equivale a [^0-9]. | |
\f | carattere form feed (fine pagina). |
\n | carattere di nuova riga. |
\r | carattere ritorno carrello. |
\s | qualunque spazio bianco, compresi caratteri. |
\S | qualunque carattere eccetto spazio, tabulatore, form feed, nuovariga. |
\t | carattere tabulatore orizzontale. |
\v | carattere tabulatore verticale. |
\w | qualunque carattere alfanumerico compreso l'underscore. Equivale ad [A-Za-z0-9_]. |
\W | qualunque carattere non alfanumerico. Equivale ad [^A-Za-z0-9_]. |
\numero | numero, è un intero positivo. |
Ad esempio il modello è /pipp([oi])(\s)paol\2/ e in esso vi sono | |
due coppie di parentesi. Il riferimento \2 opera alla ricorrenza trovata | |
secondo il modello memorizzato ([oi]). Per cui in complesso il confronto | |
sarà riuscito se verrà trovato "pippo paolo" ovvero "pippi paoli" ma non | |
"pippi paolo", in quanto la memorizzazione determinata dalle parentesi | |
avrà ad oggetto non il modello tra parentesi ma il risultato | |
dell'applicazione di quel modello, e, quindi, la sottostringa trovata che | |
corrispondeva al modello proposto. In altri termini viene memorizzata la | |
sottostringa trovata, non il modello di ricerca. | |
Attenzione se numero è superiore alle coppie di parentesi precedenti, | |
viene interpretato come ottale. | |
\xnumer | esadecimale corrisponde al carattere ASCII corrispondente al valore di |
numero esadecimale che è un numero di due cifre in notazione | |
esadecimale preceduto dal carattere x. Serve per utilizzare nelle | |
espressioni di ricerca anche caratteri ASCII particolari. |
UTILIZZO DEI MODELLI DI RICERCA
Le regular expression create dall’utente sono affiancate da un oggetto predefinito
RegExp, statico, che appartiene al processo javascript in esecuzione, che non può
essere creato ma è sempre disponibile per l’uso.
Nelle proprietà di tale oggetto predefinito
vengono memorizzati i risultati dell’ultima ricerca.
I modelli vengono utilizzati con i metodi di regular expression:
test
e exec
e con i metodi:
match, replace, search
e split
di String.
MODELLO | DESCRIZIONE |
---|---|
exec(stringa) | applica la ricerca del modello definito nella regular expression alla |
stringa oggetto della ricerca. Se la ricerca ha successo ritorna un | |
array e aggiorna le proprietà dell’oggetto Regular Expression e | |
dell’oggetto statico predefinito RegExp. Se la ricerca non ha | |
successo torna null. | |
test(stringa) | applica la ricerca del modello definito nella regular expression alla |
stringa oggetto della ricerca, tornando true o false a seconda se la | |
ricerca ha successo o meno. | |
match(regexpr) | applica alla stringa referenziata la regular expression regexpr, |
tornando un array con i risultati della ricerca, se questa ha avuto | |
successo. L’elemento zero dell’array contiene l’ultima sequenza di | |
caratteri corrispondente al modello. Gli elementi da 1 a | |
array.lenght -1, contengono le ricorrenze delle sottostringhe | |
corrispondenti alla parte di modello identificata tra parentesi tonde. | |
Se si vuole una ricerca globale o non case-sensitive occorre | |
formulare la regular expression regexpr fornendole i modificatori g e/o i. | |
replace(regexpr, sottostringa) | ritorna una nuova stringa che è la risultante della stringa |
referenziata con le occorrenze trovate tramite regexpr sostituite | |
dalla sottostringa. La stringa referenziata non subisce modifiche. | |
search(regexpr) | applica alla stringa referenziata la regular expression regexpr, |
tornando la posizione nella stringa referenziata (partendo da zero) | |
se ha avuto successo, oppure -1 (false). | |
split(separatore) | ritorna un array i cui elementi sono le sottostringhe che nella stringa |
referenziata sono separate l’una dall’altra dal separatore, che può | |
essere un carattere o stringa o una regular expression (ovviamente | |
da Js 1.2). Il separatore non viene riportato nelle sottostringhe. |
I metodi:
exec
e match
sono meno veloci
dei metodi test
e search
.
Per cui è consigliabile usare questi ultimi se serve soltanto sapere se la stringa contiene il modello.
Se non serve accedere alle proprietà di una regular expression e non serve riutilizzarla, un metodo sintetico per ottenere un array con le occorrenze trovate è:
mioArray = /modello/ [modificatore].exec(stringa);
Gli EVENTI del Modello a Oggeti del Browser
GESTORE-EVENTO | GENERATO QUANDO |
---|---|
onAbort | caricamento interrotto |
onaf terupdate | l'elemento al quale è lega-to è stato aggiornato con successo |
onbef oreupdate | quando l'elemento al quale è legato sta per essere aggiornato |
onafterprint | l'elemento al quale è legato è stato stampato |
onbeforeprint | l'elemento al quale è legato sta per essere stampato |
onactivate | l'elemento al quale è legato prende il focus, quindi diventa attivo |
ondeactivate | l'elemento al quale è legato perde il focus per passarlo a un altro elemento |
onbeforedeactivate | l'elemento al quale è legato sta per perdere il focus |
onbeforecopy | la selezione per esempio del testo di un dato elemento stà per essere copiata negli appunti |
oncopy | la selezione per esempio del testo di un dato elemento viene copiata negli appunti |
onbeforepaste | Il contenuto degli appunti staper essere incollato sull'elemento |
onbeforecut | la selezione del testo di un dato elemento sta per essere tagliata |
onpaste | il contenuto degli appunti viene incollato sull'elemento |
oncut | la selezione del testo di un dato elemento viene a essere tagliata |
onbeforeeditfocus | prima che un elemento prenda it focus, cioè diventi elemento attivo |
onbeforeunload | quando l'elemento al quale é legato sta per essere abbandonato |
onblur | L'elemento perde it focus di input |
onbounce | quando il testo di un marquee che scorre in senso alternato rimbalza per ritornare indietro |
oncellchange | quando l'elemento al quale e legato cambia valore |
onchange | quando il contenuto dell'elemento al quale é legato cambia valore |
onclick | l'utente fa clic con it mouse |
oncontextmenu | l'utente fa clic sul tasto destro del mouse per aprire il menu contestuale |
oncontrolselect | l'utente sta per fare una selezione di controllo dell'oggetto |
ondataavailable | dati trasmessi periodicamente arrivano dalla fonte (XML) |
ondatasetchanged | dati trasmessi cambiano (XML) |
ondatasetcomplete | tutti i dati sono stati trasmessi dalla fonte (XML) |
onbblclick | l'utente fa doppio clic |
ondrag | l'utente prende un oggetto per spostarlo (per esempio inserire l'evento |
in una textarea, evidenziare il testo contenuto e provare a trascinarlo con il mouse) | |
ondragend | l'utente rilascia il pulsante del mouse dopo il trascinamento |
ondragenter | l'utente prende un oggetto e lo trascina in un campo valido |
ondragleave | l'utente trascinando un oggetto esce da un campo valido o dopo aver |
rilasciato il pulsante del mouse | |
ondragover | l'utente prende un oggetto in un campo valido |
ondragstart | l'utente avvia la procedura per trascinare un oggetto |
ondrop | l'utente rilascia il pulsante del mouse dopo un'azione di drag-and-drop |
onerror | si verifica un'errore durante il caricamento |
onerrorupdate | si verifica un errore durante l'aggiornamento dei dati |
onfilterchange | quando un filtro cambia stato o ha completato la sua transizione |
onfinish | termina il ciclo di un marquee |
onstart | inizia ogni ciclo di un mar quee |
onFocus | all'elemento viene assegnato il focus di input |
onhelp | viene premuto il tasto F1 della tastiera |
onKeyDown | l'utente preme un tasto |
onKeyPress | l'utente preme un tasto |
onKeyUp | l'utente rilascia un tasto |
onlayoutcomplete | il processo di riempimento del layout stampa o di anteprima di stampa é terminato |
onLoad | termina il caricamento del documento o immagine |
onlosecapture | l'utente fa clic con il mouse sull'elemento che precedentemente e stato |
caricato con il metodo setCapture() - releaseCapture(), cioé quando l'oggetto viene "rilasciato" | |
onMouseDown | l'utente preme il tasto del mouse |
onmouseenter | il mouse viene posizionato sopra un oggetto, a differenza di onmouseover, |
onmouseenter non é di tipo "bubbles", quindi non interviene se si | |
muove il mouse sopra gli elementi che contengono l'oggetto, | |
ma solo sull'oggetto. | |
onmouseleave | il mouse esce da un oggetto, a differenza di onmouseout, onmouseleave non di tipo "bubbles", |
quindi non interviene se si muove il mouse fuori dagli | |
elementi che contengono l'oggetto, ma solo sull'oggetto. | |
onMouseOut | il mouse viene spostato dall'elemento |
onMouseOver | il mouse si porta sopra l'elemento |
onMouseUp | l'utente rilascia il pulsante del mouse |
onpropertychange | cambiano le proprieta di un oggetto |
onreadystatechange | lo stato dell'oggetto cambiato |
onReset | l'utente chiede di reimpostare il modulo |
onResize | la finestra viene ridimensionata |
onresizeend | le dimensioni dell'oggetto a cui a applicato l'evento sono cambiate |
onresizestart | l'utente inizia a variare la dimensione dell'oggetto |
onrowenter | la "fila" dei nuovi dati é disponibile sull'oggetto |
onrowexit | appena prima che la "fila" dei nuovi dati e sostituita sull'oggetto |
onrowsdelete | la "fila" dei dati e cancellata |
onrowsinserted | appena prima che la "fila" dei nuovi dati e inserita |
onscroll | quando si scrolla l'oggetto |
onselectionchange | lo stato di selezione del documento cambia |
onselectstart | l'oggetto sta per essere selezionato |
onstop | l'utente fa clic sul pulsante; termina o si chiude o ricarica la pagina, |
a differenza di on beforeunload e onunload , entra in | |
azione subito dopo il primo ma prima del secondo. | |
onSubmit | l'utente invia i dati |
onunLoad | il documento viene scaricato |