Quando si sviluppa per il web le stringhe sono molto utilizzate perché il testo è alla base delle comunicazioni tra client e server nell’invio dei moduli HTML. Javascript offre un ottimo supporto al testo attraverso l’oggetto String: una stringa non è altro che un insieme di caratteri racchiusi tra doppi o singoli apici.
Possiamo istanziare un nuovo oggetto String attraverso questa sintassi
var strText = new String(“Ciao mondo!”);
oppure dichiararla semplicemente
var strText = “Ciao mondo!”;
In Javascript è possibile utilizzare sia i doppi che i singoli apici, si ricorre a questi ultimi solitamente quando si usa il linguaggio di scripting all’interno del codice HTML
<a href=”#” onClick=”alert(‘Solo un esempio!’)”>Esempio</a>
In questa situazione l’utilizzo dei doppi apici creerebbe confusione al browser che interpreterebbe in maniera erronea il valore di onClick. Un altro problema è l’utilizzo dell’apostrofo all’interno di una stringa nel valore di alert ( nel nostro esempio precedente ), per questo vengono utilizzati i cosiddetti caratteri escape, particolari coppie di simboli che si utilizzano per rappresentare i caratteri privi di rappresentazione semplice o comunque in conflitto con la sintassi Javascript
<a href=”#” onClick=”alert(‘Solo un\’altra stringa!’)”>Esempio</a>
I caratteri escape hanno la forma \x, dove al posto di x abbiamo il simbolo da rappresentare. I più utilizzati caratteri escape sono
- \’ apici
- \” doppi apici
- \\ back-slash
- \r ritorno a capo
- \n nuova riga
- \t tabulazione
L’oggetto String dispone di una vasta serie di metodi utili per manipolare le stringhe, basilare è anche la proprietà length che rappresenta il numero di caratteri che costituiscono la sequenza. I metodi più utilizzati sono:
- chartAt(n) che restituisce il carattere di indice n
- charCodeAt(n) che restituisce il codice Unicode del carattere di indice n
- indexOf(ss) che restituisce la posizione della prima occorrenza della sotto-stringa ss o -1 se non c’è occorrenza
- lastIndexOf(ss) che restituisce la posizione dell’ultima occorrenza della sotto-stringa ss o -1 se non c’è occorrenza
- split(ss) che suddivide una stringa in un array di sotto-stringhe, ottenute spezzando l’oggetto di invocazione ad ogni occorrenza di ss
- substring(ci, cf) che restituisce una sotto-stringa individuata nell’oggetto di invocazione a partire dal carattere indice ci incluso fino a quello cf escluso
- toLowerCase() che restituisce una nuova stringa tutta minuscola
- toUpperCase() che restituisce una nuova stringa tutta maiuscola
Per una illustrazione più dettagliata dei metodi dell’oggetto String potete visitare questa pagina.
A differenza degli altri oggetti, le stringhe possono servirsi di alcuni operatori, come il + per la concatenazione oppure gli operatori booleani. Per mostrare in pratica come si utilizzano le strutture presentate finora facciamo un esempio:
<html> <head> <title>Pagina di esempio</title> <script language="javascript"> var s1 = "Ciao"; var s2 = "buonasera"; var s3 = "ciao"; var s4 = s1 + " " + s2 + " " + s3; alert(s4); s1 = s1.toLowerCase(); s2 = s2.toLowerCase(); s3 = s3.toLowerCase(); s4 = s1 + " " + s2 + " " + s3; alert(s4); if (s1 == s2) alert("La prima e seconda stringa sono uguali"); else if (s1 == s3) alert("La prima e la terza stringa sono uguali"); else if (s2 == s3) alert("La seconda e la terza stringa sono uguali"); else alert("Le stringhe sono diverse"); </script> </head> <body> </body> </html>
Ho cercato di inserire tutte le nozioni viste finora per mostrare l’uso dei metodi elencati sulle stringhe, comunque l’uso più comune dell’oggetto String in Javascript è quello per la validazione dell’input dei form HTML. Come esercizio potete validare un indirizzo di posta elettronica cercando la presenza del carattere @ all’interno della stringa.