HOWTO · JavaScript

Aggiungi carattere alla stringa in JavaScript

In JavaScript puoi aggiungere testo a una stringa con l’operatore `+`, un template literal o il metodo `concat()`.

In questa pagina

Le stringhe JavaScript sono immutabili: non puoi quindi modificare un carattere all’interno di una stringa esistente. Per aggiungere testo, combina la stringa originale con il nuovo testo e usa la stringa risultante, assegnandola a una nuova variabile oppure di nuovo alla variabile originale. Per aggiunte semplici, usa + o un template literal; per unire stringhe, usa concat(); per inserire testo in una posizione specifica, ricorri allo slicing della stringa o a un array.

Aggiungere caratteri all’inizio o alla fine di una stringa

Per aggiungere testo all’inizio, mettilo prima della stringa esistente; per aggiungerlo alla fine, mettilo dopo. Per esempio, "H" + "ello" produce "Hello", mentre "Hello" + "!" produce "Hello!". L’operatore + valuta gli operandi da sinistra a destra, quindi il loro ordine determina dove comparirà il testo.

Esegui questo esempio:

Il codice e le etichette o gli output visibili in questa sezione restano in inglese.

const existingString = "ello";
const charToAdd = "H";
const newString = charToAdd + existingString;
console.log(newString);
Hello

Per aggiungere testo alla fine, inverti l’ordine degli operandi: existingString + charToAdd. Se vuoi che la variabile faccia riferimento al risultato, riassegnale il nuovo valore: existingString = existingString + charToAdd richiede che existingString sia stata dichiarata con let, non con const.

Usare l’operatore + e i template literal

L’operatore + è adatto per unire un numero ridotto di valori. I template literal offrono un’altra forma leggibile, soprattutto quando una stringa include diverse variabili o espressioni. Scrivi il template literal tra backtick e inserisci ogni valore all’interno di ${}. Per esempio, `${firstName} ${lastName}` combina due variabili separandole con uno spazio. Per aggiungere testo all’inizio o alla fine, inserisci l’espressione nella posizione corrispondente del template literal.

Entrambi gli approcci creano una nuova stringa: nessuno dei due modifica le stringhe originali. Scegli la forma che rende più chiaro l’ordine desiderato. Se vuoi inserire lo stesso separatore tra più valori, un template literal può mostrarlo direttamente nel risultato.

Usare concat() per unire stringhe

Il metodo concat() restituisce una nuova stringa composta dal ricevente seguito da ciascun argomento fornito. Il ricevente determina la prima parte del risultato: "Hello".concat("!") aggiunge un punto esclamativo alla fine, mentre "H".concat("ello") mette "H" all’inizio di "ello" usandola come ricevente. Il metodo non modifica nessuna delle due stringhe. Consulta il riferimento JavaScript di concat(), disponibile solo in inglese, per i dettagli dell’API.

Per aggiungere valori contenuti in un array, parti dalla stringa e aggiungi ciascun valore nell’ordine in cui compare. Per esempio, un ciclo che applica result = result.concat(character) a ogni elemento di characters costruisce una sola stringa risultato. Inizializza result con il testo di partenza prima del ciclo. Se devi unire molti frammenti di testo, può essere più chiaro raccoglierli in un array e chiamare join("") una sola volta invece di ricostruire ripetutamente la stringa.

Inserire caratteri in una posizione specifica

Per inserire testo all’indice position, unisci la parte precedente a quell’indice, il testo da inserire e la parte che inizia da quell’indice. Con slice(), l’espressione è original.slice(0, position) + inserted + original.slice(position). La prima chiamata prende i caratteri fino all’indice, senza includerlo; la seconda prende il resto. Gli indici delle stringhe JavaScript contano unità di codice UTF-16, quindi per le emoji e parte del testo Unicode possono non corrispondere ai caratteri percepiti dall’utente.

Puoi esprimere lo stesso schema con substring(): original.substring(0, position) + inserted + original.substring(position). Con indici non negativi compresi nella stringa, prende l’intervallo tra i due argomenti; se riceve un solo argomento, prende il resto della stringa. slice() accetta anche indici negativi, mentre substring() tratta gli argomenti negativi come zero e scambia i due argomenti se il primo è maggiore del secondo. Scegli il metodo in base al comportamento degli indici di cui hai bisogno.

Creare una stringa a partire da un array

Se è più semplice descrivere l’inserimento come una modifica a un array, dividi la stringa in parti, usa splice() per inserire un elemento e poi ricomponi la stringa con join(). Per esempio, const parts = original.split("") crea un array di unità di codice UTF-16; parts.splice(position, 0, inserted) inserisce un elemento senza rimuoverne altri, mentre parts.join("") crea la stringa risultante. La posizione è un indice di array a base zero: 0 inserisce l’elemento prima del primo e parts.length lo aggiunge dopo l’ultimo.

Questo approccio è utile se devi già modificare una raccolta di caratteri o eseguire diverse operazioni su un array. Se il testo può contenere caratteri al di fuori del piano multilingue di base, Array.from(original) itera per punto di codice Unicode anziché per unità di codice UTF-16. Né split("") né Array.from() raggruppano i segni combinanti in grafemi percepiti come un singolo carattere; se la posizione deve corrispondere a ciò che una persona vede come un carattere, usa un approccio consapevole dei grafemi.