" + miavar + "
"); miafinestra.document.write("" + miavar + "
"); miafinestra.document.write("Argomenti trattati: la gestione di variabili alfanumeriche e l'oggetto String.
L'oggetto String è utilizzato frequentemente in JavaScript, poiché spesso occorre elaborare, ricercare o controllare delle stringhe. Indipendentemente dalla dichiarazione o meno di una variabile come oggetto stringa, i metodi possono essere utilizzati per elaborare una variabile il cui valore è di tipo alfanumerico.
La sintassi del costruttore è la seguente:
var miaStringa= new String('valore della stringa');
oppure:
var miaStringa= new String();
il valore può essere assegnato successivamente.
Anche scrivendo:
var miaStringa='valore della mia stringa';
si potrebbe elaborare tale variabile con i metodi e le
proprietà dell'istanza di un oggetto String.
Ricordiamo che possiamo anche assegnare, in seguito, un valore numerico ad x. Per programmatori abituati a linguaggi come C o Java, è utile sottolineare che non esistono dati che rappresentino caratteri, come il char in C. Quindi, non esiste differenziazione tra:
a="sì, sei considerata una stringa";
e:
a='sì, sei considerata una stringa';
né a='a' è diverso da a="a";
Metodi |
||
---|---|---|
anchor() | si riferisce ad un oggetto anchor e alla sua proprietà name | var miastringa="Testo dell'ancoraggio"; var Ancor=miastringa.anchor(mioAncoraggio); Rispetto al tag <A></A>, è come scrivere: <a name="mioAncoraggio"> Testo dell'ancoraggio </a> Esattamente questo è il valore assunto dalla variabile Ancor |
big() | applica il tag <big> </big> alla stringa passata |
var miavar= new String; |
blink() | applica il tag <blink> </blink> alla stringa passata |
var miavar= new String; |
bold() | applica il tag <b> </b> alla stringa passata |
var miavar= new String; |
charAt() | restituisce il carattere in corrispondenza dell'indice passato come argomento del metodo a, partire da zero. | var indice=0 var miavar=new String; miavar="ABCDEFGHILMNOPQRSTUVZ" var carattere=miavar.charAt(indice)" |
charCodeAt() | restituisce il valore numerico del codice UNICODE del carattere in corrispondenza dell'indice passato come argomento del metodo, a partire da zero. | var indice=0 var miavar=new String; miavar="ABCDEFGHILMNOPQRSTUVZ" var carattere=miavar.charCodeAt(indice)" |
concat() | concatena 2 stringhe | var str1="Il metodo concat()" var str2=" concatena 2 stringhe" str1.concat(str2); |
fixed() | applica il tag <TT></TT> alla stringa passata |
var miavar= new String; |
fontcolor() | equivale all'attributo color del tag <font></font> |
var miavar= new String; |
fontsize() | equivale all'attributo size del tag <font></font> |
var miavar= new String; |
fromCharCode() | Restituisce la stringa risultante dai codici UNICODE passati come argomenti | var miavar=String.fromCharCode(65,66,67) |
indexOf() | restituisce la posizione, a partire da zero, della prima ricorrenza a partire dall'inizio della stringa del carattere o della sottostringa passata come argomento. Se la ricorrenza non è presente, restituisce -1. | miavar="ABCDEFGHILMNOPQRSTUVZ"; var ricorrenza=miavar.indexOf('a') |
italics() | corrisponde al tag <I></I> |
var miavar= new String; |
lastIndexOf() | restituisce la posizione, a partire dall'ultimo carattere nella stringa, della prima ricorrenza del carattere o della stringa passata come argomento. Se la ricorrenza non è presente, restituisce -1. | miavar="ABCDEFGHILMNOPQRSTUVZ" var ricorrenza=miavar.lastIndexOf('A') |
link() | si riferisce ad collegamento ipertestuale e all'indirizzo corrispondente all'attributo HREF del tag <A></A> | var miastringa="Testo del
collegamento"; var MioLink=miastringa.link("http://indirizzo_Internet.it"); Rispetto al tag <A></A>, è come scrivere: <a href="http://indirizzo_Internet.it"> Testo del collegamento </a> Esattamente questo è il valore assunto dalla variabile Ancor |
match() | Restituisce i risultati della ricerca di un'espressione
regolare in una stringa vedi anche l'Oggetto RegExp |
var Stringa="Cappuccetto Rosso e il Lupo Cattivo"; var Espressione= new RegExp("p"); Stringa.match(Espressione) |
replace() | Sostituisce i caratteri trovati in una stringa con quelli passati | La sintassi del metodo è: Stringa.replace(sottostringa_da_ricercare, testoConCuiSostituirla) L'esempio seguente mostra come la "colla" può diventare una "corda": var DaSostituire="colla"; var DopoSostituzione=DaSostituire.replace("ll","rd"); alert(DopoSostituzione) |
search() | Cerca la prima occorenza di una sottostringa passata al metodo in una stringa | La sintassi del metodo è: Stringa.search(sottostringa_da_ricercare) Per ulteriori dettagli, vai all'Oggetto RegExp |
slice() | Restituisce una prozione di una stringa | La sintassi del metodo slice() è: Stringa.slice(inizio,fine); MiaStringa='pescecane'; Str1=MiaStringa.slice(0,5) alert(Str1) |
small() | equivale al tag <small></small> |
var miavar= new String; |
split() | Restituisce un Array, i cui elementi corrispondono alle sottostringe che derivano sa una stringa suddivisa a partire dall'argomento passato alla funzione | var ShowSplit=new String("Beata Solitudo Sola Beatitudo"); ArrayRicavato=ShowSplit.split(' '); for (i=0; i<ArrayRicavato.length; ++i) alert(ArrayRicavato[i]) |
strike() | applica il tag <strike></strike> alla stringa passata |
var miavar= new String; |
sub() | applica il tag <sub></sub> alla stringa passata |
var miavar= new String; |
substr() | restituisce la sottostringa della stringa di partenza racchiusa tra i limiti passati al metodo come argomento | La sintassi del metodo substring() è: Stringa.subst(inizio,fine); MiaStringa='pescecane'; Str1=MiaStringa.substr(0,5) alert(Str1) |
substring() | restituisce la sottostringa della stringa di partenza racchiusa tra i limiti passati al metodo come argomento | La sintassi del metodo substring() è: Stringa.substring(inizio,fine); MiaStringa='pescecane'; Str1=MiaStringa.substring(5,9) alert(Str1) |
sup() | applica il tag <sup></sup> alla stringa passata |
var miavar= new String; |
toLowerCase() | converte in caratteri minuscoli tutti i caratteri presenti nella stringa |
MiaStringa='ABCDEFGHILMNOPQRSTUVZ'; Str1=MiaStringa.toLowerCase(); alert(Str1) |
toString() | Converte in stringa i caratteri passati. | var num1=456 Str1=num1.toString(); alert(typeof(Str1))
|
toUpperCase() | converte in caratteri maiuscoli tutti i caratteri presenti nella stringa | MiaStringa='abcdefghilmnopqrstuvz'; Str1=MiaStringa.toUpperCase(); alert(Str1) |
valueOf() | Restituisce il sorgente stringa del valore passato | MiaStringa='valore della mia stringa'; Str1=MiaStringa.valueOf(); alert(Str1) |
Proprietà |
||
length | corrisponde alla lunghezza in caratteri della stringa considerata | MiaStringa='abcdefghilmnopqrstuvz'; Str1=MiaStringa.length; alert(Str1) |
prototype | questa proprietà permette di ampliare i metodi o le proprietà dell'oggetto considerato, in questo caso l'oggetto String(). |
Il metodo toString(), per la conversione
di una variabile in stringa, è stato aggiunto nella versione
1.3 di JavaScript. Precedentemente, occorreva utilizzare il seguente 'trucco':
var num1=456
Str1=num1 + '';
alert(typeof(Str1))
Al contrario, per convertire una stringa in un numero, possono
essere utilizzati i metodi parseInt() e parseFloat()
dell'oggetto Global.
Esistono inoltre dei caratteri speciali, che per essere
rappresentati, devono essere scritti secondo le istruzioni della tabella
sottostante, per non provocare errori nella lettura della stringa da parte del
browser:
\t | Carattere di tabulazione |
\n | Nuova riga |
\r | Ritorno a capo |
\f | Avanzamento di carrello |
\\ | BackSlash o barra inversa |
\b | BackSpace |
\' | apice singolo |
\'' | doppio apice |
Ad esempio, si osservi la sintassi del seguente messaggio riportato nel metodo alert():
alert('\t Vi sono numerose funzioni legate ai caratteri speciali. \n Ad esempio, posso utilizzare la virgoletta singola: \', o la barra spaziatrice: \\, mediante la rappresentazione della tabella, e non avere un messaggio \f\r di errore ')
Segue un esempio di come costruire una sorta di applicazione "Trova e Sostituisci" in JavaScript
function qo(TestoCercato) { TR=0; /* TR è una variabile globale, che serve a segnalare in tutte le funzioni che la stringa segnalata è stata trovata nel testo */ if (TestoCercato=='') document.f1.Risultato.value='Immettere una stringa di almeno un carattere.' else { var num1=0; var w=TestoCercato; var Tutto=opener.document.Testo.Valore.value; if (Tutto.indexOf(w)==-1) document.f1.Risultato.value='La stringa non risulta presente nel testo.' else { /* Se la stringa ricercata è effettivamente presente nel testo considerato, viene passata alla variabile w, e TR assume il valore di uno, quindi vengono contate le occorrenze della stringa ricercata nel testo */ TR=1; var z='?'; for(i=0; i<=Tutto.length; ++i) { if(Tutto.indexOf(w)!=-1) num1=num1 + 1 Tutto=Tutto.replace(w,z); } document.f1.Risultato.value='Sono state trovate ' + num1 + ' occorrenze della stringa ricercata ' + w } } } function sost1(TestoSostituzione) { /* Questa funzione sostituisce la stringa ricercata con quella desiderata segnalando le sostituzioni una ad una */ Appo=''; if (TestoSostituzione!='' && document.f1.Tcerca.value!='' && TR==1) { var w=document.f1.Tcerca.value; var z=TestoSostituzione var Tutto=opener.document.Testo.Valore.value; { while(Tutto.indexOf(w)!=-1) { prestr=Tutto.substring(0, Tutto.indexOf(w)); Tutto=Tutto.replace(w,z); Appo=Appo + prestr+z; // Appo memorizza il testo già sostituito Appo2=prestr + z; Tutto=Tutto.substring(Appo2.length,Tutto.length) /* Tutto memorizza, durante il ciclo, il testo ancora da sostituire finché è presente almeno una ricorrenza della sottostringa ricercata */ opener.document.Testo.Valore.value=Appo + Tutto; alert('è stata effettuata una sostituzione.Clicca di nuovo per effettuarne un\'altra'); } document.f1.Risultato.value='la stringa ricercata non compare più nel testo' } } } function sost2(TestoSostituzione) { /* Questa funzione sostituisce la stringa ricercata con quella desiderata segnalando il numero di sostituzioni che saranno effettuate: se si accetta la sostituzione, questa avverrà per tutte le sottostringhe nel testo */ if (TestoSostituzione!='' && document.f1.Tcerca.value!='' && TR==1) { num2=0; Appo3=''; var w=document.f1.Tcerca.value; var z=TestoSostituzione; var Tutto=opener.document.Testo.Valore.value; while(Tutto.indexOf(w)!=-1) { prestr2=Tutto.substring(0, Tutto.indexOf(w)); Tutto=Tutto.replace(w,z); num2=num2 + 1; Appo3=Appo3 + prestr2+z; Appo4=prestr2 + z; Tutto=Tutto.substring(Appo4.length,Tutto.length) } var confSost=confirm('Saranno effettuate ' + num2 + ' sostituzioni. \n Procedo?'); if(confSost) { opener.document.Testo.Valore.value=Appo3 + Tutto; document.f1.Risultato.value='la stringa ricercata non compare più nel testo' } else return false; } } |