04

Giocare con il Testo ๐Ÿ“

Le stringhe sono ovunque! Impara a manipolare testo, validare input, concatenare stringhe e costruisci un generatore di biglietti personalizzati profess

โฑ๏ธ 35 minuti ๐ŸŽฏ Livello: Principiante ๐ŸŽซ 1 Progetto Biglietti

๐Ÿ“š Benvenuto nella Lezione 4!

Bentornato Text Master! ๐Ÿ“ Hai imparato numeri e variabili. Ora รจ il momento di lavorare con il TESTO!

Quasi ogni applicazione gestisce testo: nomi utenti, email, messaggi, post social, commenti... Le stringhe (testo) sono fondamentali!

In questa lezione imparerai a manipolare le stringhe come un professionista e costruirai un generatore di biglietti personalizzati! ๐ŸŽซ

๐ŸŽฏ Cosa Imparerai

  • โœ… Concatenare stringhe in 3 modi diversi
  • โœ… Usare template literals con ${}
  • โœ… Metodi delle stringhe (toUpperCase, toLowerCase, trim...)
  • โœ… Cercare testo con indexOf() e includes()
  • โœ… Validare input utente (email, nomi)
  • โœ… Progetto completo: Generatore biglietti eventi

๐ŸŽฎ Perchรฉ le Stringhe Sono Importanti?

Le stringhe sono usate in:

  • ๐Ÿ“ง Form: Nome, email, password, messaggi
  • ๐Ÿ’ฌ Chat: Messaggi tra utenti, emoji
  • ๐Ÿ” Ricerca: Cercare prodotti, filtrare risultati
  • ๐Ÿ“ Editor: Formattare testo, contare parole
  • ๐ŸŽซ Ticketing: Generare biglietti, conferme email

๐Ÿ‘€ Demo Interattiva: Trasformatore di Testo

Scrivi qualcosa e vedi tutte le trasformazioni possibili! โœจ

๐Ÿ“
Lunghezza
-
๐Ÿ”ผ
MAIUSCOLO
-
๐Ÿ”ฝ
minuscolo
-
โžก๏ธ
Primo Carattere
-
โฌ…๏ธ
Ultimo Carattere
-
๐Ÿ”„
Al Contrario
-

๐Ÿค” Come Funziona?

Il codice usa questi metodi:

  • text.length โ†’ Conta i caratteri
  • text.toUpperCase() โ†’ Converte in MAIUSCOLO
  • text.toLowerCase() โ†’ Converte in minuscolo
  • text.charAt(0) โ†’ Prende il primo carattere
  • text.charAt(text.length - 1) โ†’ Prende l'ultimo
  • text.split('').reverse().join('') โ†’ Inverte la stringa

โž• Concatenare Stringhe: 3 Modi

Concatenare significa "unire" stringhe. Ci sono 3 modi in JavaScript:

1. Operatore + (Il Vecchio Modo)

JavaScript
const nome = "Mario";
const saluto = "Ciao " + nome + "! Come stai?";

console.log(saluto); // "Ciao Mario! Come stai?"
โš ๏ธ Problema: Con l'operatore + รจ facile dimenticare gli spazi e il codice diventa poco leggibile!

2. Template Literals (Il Modo Moderno) โญ

JavaScript
const nome = "Mario";
const etร  = 25;

// Usa backtick ` e ${variabile}
const messaggio = `Ciao ${nome}! Hai ${etร } anni.`;

console.log(messaggio); // "Ciao Mario! Hai 25 anni."
โœ… Vantaggi Template Literals:
  • Piรน leggibile e facile da scrivere
  • Puoi inserire espressioni: `Il totale รจ ${10 + 5}โ‚ฌ`
  • Supporta stringhe multi-linea
  • รˆ lo standard moderno!

3. concat() (Poco Usato)

JavaScript
const nome = "Mario";
const saluto = "Ciao ".concat(nome, "!");

console.log(saluto); // "Ciao Mario!"
๐Ÿ“Œ Consiglio: Usa SEMPRE i template literals (backtick `) per concatenare. Sono piรน moderni e leggibili!

โœ๏ธ Prova Tu: Template Literals

Compila i campi e genera una frase con template literal!

๐ŸŽจ Template Literals in Dettaglio

I template literals usano il carattere backtick ` (tasto sopra il TAB) e permettono di inserire variabili con ${}

Caratteristiche Potenti

1๏ธโƒฃ Inserire Variabili

const nome = "Anna";
console.log(`Ciao ${nome}!`);

2๏ธโƒฃ Espressioni JavaScript

const a = 10, b = 5;
console.log(`${a} + ${b} = ${a + b}`);

3๏ธโƒฃ Stringhe Multi-linea

const msg = `Questa รจ
una stringa
su piรน righe!`;

4๏ธโƒฃ Chiamare Funzioni

function getAge() { return 25; }
console.log(`Etร : ${getAge()}`);

๐Ÿ› ๏ธ Metodi delle Stringhe

JavaScript offre tantissimi metodi per manipolare le stringhe. Ecco i piรน importanti:

Metodo Cosa Fa Esempio Risultato
toUpperCase() Converte tutto in MAIUSCOLO "ciao".toUpperCase() "CIAO"
toLowerCase() Converte tutto in minuscolo "CIAO".toLowerCase() "ciao"
trim() Rimuove spazi all'inizio e alla fine " ciao ".trim() "ciao"
slice(start, end) Estrae una parte della stringa "JavaScript".slice(0, 4) "Java"
indexOf(text) Trova la posizione di un testo "ciao".indexOf("a") 2
includes(text) Verifica se contiene un testo "ciao".includes("ia") true
replace(old, new) Sostituisce un testo "ciao".replace("a", "e") "cieo"
split(separator) Divide la stringa in array "a,b,c".split(",") ["a","b","c"]
repeat(n) Ripete la stringa n volte "Ha".repeat(3) "HaHaHa"

๐Ÿ’ก Nota Importante

I metodi delle stringhe NON modificano la stringa originale, ma restituiscono una nuova stringa!

let testo = "ciao";
testo.toUpperCase(); // Restituisce "CIAO"
console.log(testo);  // Stampa ancora "ciao"

// Per salvare il risultato:
let testoMaiuscolo = testo.toUpperCase();
console.log(testoMaiuscolo); // "CIAO"

โœ๏ธ Esercizio Guidato: Validatore Email

Crea una funzione che controlla se un'email รจ valida (deve contenere @ e .)

๐Ÿ“‹ Cosa Devi Fare

  1. Seleziona l'input email, il bottone e il div del risultato
  2. Aggiungi un evento click al bottone
  3. Prendi il valore dall'input e usa trim()
  4. Controlla se contiene @ e . usando includes()
  5. Mostra "โœ… Email valida" o "โŒ Email non valida"

๐Ÿ“ Struttura HTML da Usare

Ecco gli elementi HTML con cui lavorerai:

HTML - Elementi del Validatore
<!-- Input email -->
<input id="emailInput" type="text" placeholder="tua@email.com">

<!-- Bottone verifica -->
<button id="btnCheckEmail">Controlla Email</button>

<!-- Risultato -->
<div id="emailResult"></div>
๐Ÿ“Œ IDs da Usare:
  • #emailInput โ†’ Input dove l'utente scrive l'email
  • #btnCheckEmail โ†’ Bottone per verificare
  • #emailResult โ†’ Dove mostrare il risultato

๐Ÿ’ก Ricorda: Usa includes('@') e includes('.') per controllare!

๐Ÿ‘๏ธ Anteprima

๐ŸŽฎ Progetto Finale: Generatore Biglietti Personalizzati

รˆ il momento del progetto vero! ๐ŸŽซ

Creerai un sistema completo per generare biglietti per eventi con:

  • โœ… Input nome, tipo biglietto, data evento
  • โœ… Validazione campi vuoti
  • โœ… Nome formattato in MAIUSCOLO automatico
  • โœ… Numero biglietto casuale generato
  • โœ… Data formattata in italiano
  • โœ… 3 tipi di biglietto con colori diversi
  • โœ… Contatore caratteri nome (max 30)

๐ŸŽฏ Obiettivi del Progetto

  • โœ… Form con 3 campi: nome, tipo, data
  • โœ… Valida che i campi non siano vuoti
  • โœ… Usa template literals per creare il biglietto
  • โœ… toUpperCase() per formattare il nome
  • โœ… Math.random() per numero biglietto
  • โœ… Mostra biglietto stilizzato con colori diversi

๐Ÿ“ Riferimento Elementi HTML

Prima di iniziare, ecco tutti gli ID che userai:

HTML - Mappa degli Elementi
<!-- Form Input -->
<input id="ticketName" type="text" placeholder="Nome Partecipante">
<select id="ticketType">
    <option value="standard">Standard</option>
    <option value="vip">VIP</option>
    <option value="premium">Premium</option>
</select>
<input id="ticketDate" type="date">

<!-- Bottoni -->
<button id="btnGenerate">Genera Biglietto</button>
<button id="btnReset">Reset</button>

<!-- Output -->
<div id="charCounter">0/30</div>
<div id="ticketPreview"></div>
๐Ÿ“Œ Guida Rapida IDs:
Input:
  • #ticketName โ†’ Nome
  • #ticketType โ†’ Tipo (select)
  • #ticketDate โ†’ Data
Controlli:
  • #btnGenerate โ†’ Genera
  • #btnReset โ†’ Reset
  • #charCounter โ†’ Counter
  • #ticketPreview โ†’ Anteprima

๐ŸŽซ Il Progetto Live

0/30 caratteri

๐Ÿ’ป Suggerimenti per il Codice

๐Ÿ’พ Esercizi Pratici da Scaricare

Pronto a padroneggiare le stringhe? Ho preparato 3 esercizi progressivi per praticare template literals, metodi stringhe e validazione!

HTML e CSS pronti - tu completi solo il JavaScript! ๐Ÿš€

๐Ÿ“ฆ

Scarica Tutti gli Esercizi

3 esercizi: trasformatore, validatore, generatore username

๐Ÿ“ฅ Scarica ZIP

Pratica template literals, toUpperCase(), trim() e slice()!

01
โญโญ Medio โฑ๏ธ 15-20 min

๐Ÿ”ค Trasformatore Maiuscole/Minuscole

Trasforma il testo in MAIUSCOLO o minuscolo. Impara toUpperCase(), toLowerCase() e .length.

โœ… toUpperCase() โœ… toLowerCase() โœ… .length
02
โญโญ Medio โฑ๏ธ 20-25 min

โœ… Validatore Nome

Valida che un nome sia corretto: minimo 3 caratteri, senza numeri. Usa trim() e includes().

โœ… trim() โœ… includes() โœ… Validazione ๐ŸŒŸ Bonus: Altre regole
03
โญโญโญ Difficile โฑ๏ธ 25-30 min

๐ŸŽฎ Generatore Username

Crea username automatici! Usa slice() per estrarre lettere, template literals e Math.random().

โœ… slice() โœ… Template literals โœ… Math.random() ๐ŸŒŸ Bonus: Replace

๐Ÿ“ฆ Cosa Include

๐ŸŽจ
Template Literals

Backtick ` e ${}

๐Ÿ”ค
Metodi Stringhe

toUpperCase, toLowerCase, trim

โœ‚๏ธ
slice() & substring()

Estrarre parti di testo

๐Ÿ”
includes() & indexOf()

Cercare dentro stringhe

๐Ÿš€ Pronto per le Stringhe?

Scarica e diventa un Text Master!

๐Ÿ“ฅ Scarica Esercizi

๐ŸŽฏ Conclusione: Sei un Text Master!

โœ… Recap: Cosa Hai Imparato

  • โœ… Concatenare con +, template literals, concat()
  • โœ… Template literals con ${} per inserire variabili
  • โœ… Metodi: toUpperCase, toLowerCase, trim, slice
  • โœ… Cercare con includes() e indexOf()
  • โœ… Validare input utente (email)
  • โœ… Generatore biglietti personalizzati completo!

๐Ÿš€ Challenge: Vai Oltre!

Migliora il generatore aggiungendo:

  • ๐Ÿ“ง Email: Aggiungi campo email e validala
  • ๐ŸŽจ Colori: Colori diversi per ogni tipo biglietto
  • ๐Ÿ’พ Salva: Array per salvare tutti i biglietti generati
  • ๐Ÿ“ฑ QR Code: Genera un codice QR (usa una libreria)
  • ๐Ÿ“„ PDF: Scarica il biglietto come PDF

๐Ÿ“š Prossima Lezione

Nella Lezione 5 imparerai le Condizioni! If, else, else if, switch... Farai decisioni intelligenti nel codice! ๐Ÿค”