35.6 Metodi per stringhe
Di seguito alcuni metodi utili da usare per le stringhe
var nome ="Faghy"; nome.toUpperCase();
ritorna la stringa in maiuscolo, ma non va a modificare il valore della variabile, ne crea una copia. Esiste la funzione opposta che converte il testo in minuscolo che si chiama toLowerCase(). Vediamo come modificare il valore della variabile in minuscolo:
nome = nome.toLowerCase();
Per trovare la posizione di una stringa posso usare indexOf()
let stringa = "la mia auto è blu"; stringa.indexOf('blu')
restituirà la posizione 14 perchè la prima posizione è conteggiata come zero..
Con charAt() possiamo invece vedere quale carattere c’è in una determinata posizione
stringa.charAt(0);
restituisce la lettera l ,cioè il primo carattere. Mentre se chiedo una posizione inesistente charAt(1333) ottengo un risultato vuoto.
Prendere una porzioni di stringa specificandone l’inizio e la fine col metodo slice()
let sciogli = "Date del pane al pazzo cane del paese"; let quattro = sciogli.slice(0,4);
il secondo parametro è la posizione prima di quella inserita, nel nostro caso la 3, quindi la stringa contenuta dalla posizione 0 alla 3 corrisponde a Date.
Supponiamo di vole estrarre la parola pazzo, ma non conosciamo la sua posizione, combiniamo a slice() il metodo indexOf() che ritorna la posizione:
let sciogli = "Date del pane al pazzo cane del paese"; let pIndex = sciogli.indexOf('pazzo'); let pazzo = sciogli.slice(pIndex, pIndex+5);
Invece ora vogliamo estrarre l’ultima parola ( paese )
let sciogli = "Date del pane al pazzo cane del paese"; let luogo = sciogli.slice(-5,-1);
se lascio il numero negativo senza specificare il secondo parametro, slice va fino alla fine
let luogo = sciogli.slice(-5);
Se invece passo solo il parametro zero o nessun parametro, ottengo la stringa completa, utile per copiare per esempio una stringa in un’altra variabile.
let stringa = sciogli.slice();
Il metodo substring() è identico a slice(), ma non accetta valori negativi.
let testo = "Una rana nera e rara sulla rena errò una sera"; testo.substring(-4);
Il valore negativo viene trasformato in zero, quindi ottengo tutta la stringa.
let testo = "Una rana nera e rara sulla rena errò una sera"; testo.substring(-4,5);
restituisce Una r , in quanto sarebbe come indicare slice(0,4)
Il metodo substr() è simile anch’esso a slice, solo che il secondo parametro non è la fine, ma la lunghezza della sottostringa che voglio leggere, vediamo come estrarre la parola rana usando sempre indexOf() per avere la posizione iniziale
let testo = "Una rana nera e rara sulla rena errò una sera"; let ranaIndex = testo.indexOf('rana'); let ranaString = testo.substr(ranaIndex,4);
substr() può utilizzare indici negativi
testo.substr(-8,3);
restituisce la stringa una . Dalla fine torno in dietro di 8 caratteri e estraggo i successivi 3.
La funzione search() restituisce la posizione di una determinata stringa o di un’espressione regolare.
let frase = "33 trentini entrarono a Trento"; let tre = frase.search('tre');
restituisce la posizione 3 mentre se avessi cercato la stringa Tre avrebbe restituito 24 perchè tiene conto del case sensitive, come tutte le altre funzioni.
Vediamo un esempio con utilizzo di un RegExp, per esempio voglio il primo numero che trova ( sintassi RegExp: \d )
let frase = "33 trentini entrarono a Trento"; var numero = frase.search(/\d/)
per cercare tramite un’espressione regolare bisogna racchiudere l’exp tra 2 slash (/ /).
L’unica differenza tra search() e indexOf() è che il primo permette l’uso delle regular expression.