---
name: sostituisci-testuale
description: Usare quando l'utente deve sostituire tutte le occorrenze di un sottotesto con un altro in una stringa.
---

# Sostituisci Testuale

Questa skill sostituisce tutte le occorrenze di un sottotesto con un altro in una stringa. Utile per modifica di contenuti testuali, formattazione dinamica, pulizia di stringhe, sostituzioni multiple.

## Procedura

1. **Sostituire il testo**: Usare `sostituisciTestuale(testo, vecchio, nuovo)`
2. **Passare i parametri**: testo (stringa originale), vecchio (sottotesto da sostituire), nuovo (sottotesto sostituente)
3. **Gestire il risultato**: Restituisce la stringa con le sostituzioni

## Regole

- `testo` deve essere una stringa
- `vecchio` e `nuovo` possono essere qualsiasi valore (vengono convertiti in stringa)
- Restituisce stringa vuota se testo non è una stringa
- **Sostituisce TUTTE le occorrenze** (non solo la prima)
- **Case-sensitive**: Distingue tra maiuscole e minuscole
- Se `vecchio` non è trovato, restituisce la stringa originale

## Esempi

### Esempio 1: Sostituire una parola

```javascript
const sostituito = sostituisciTestuale('Ciao Mondo', 'Mondo', 'Terra');
console.log(sostituito); // 'Ciao Terra'
```

### Esempio 2: Sostituire tutte le occorrenze

```javascript
const sostituito = sostituisciTestuale('Ciao Ciao Ciao', 'Ciao', 'Addio');
console.log(sostituito); // 'Addio Addio Addio'
```

### Esempio 3: Rimuovere un sottotesto

```javascript
const sostituito = sostituisciTestuale('JavaScript', 'Script', '');
console.log(sostituito); // 'Java'
```

### Esempio 4: Sostituire spazi

```javascript
const sostituito = sostituisciTestuale('Ciao Mondo', ' ', '-');
console.log(sostituito); // 'Ciao-Mondo'
```

### Esempio 5: Sostituire con HTML

```javascript
const testo = 'Testo importante';
const html = sostituisciTestuale(testo, 'importante', '<strong>importante</strong>');
console.log(html); // 'Testo <strong>importante</strong>'
```

## Dettagli Aggiuntivi

- **Implementazione**: Usa `split()` e `join()`
- **Processo**:
  ```javascript
  testo.split(vecchio).join(nuovo)
  ```
- **split(vecchio)**: Divide la stringa usando vecchio come separatore
- **join(nuovo)**: Unisce le parti con nuovo
- **Efficienza**: O(n) - tempo lineare rispetto alla lunghezza della stringa
- **Esempi**:
  - sostituisciTestuale('ciao ciao', 'ciao', 'addio') → 'addio addio'
  - sostituisciTestuale('JavaScript', 'Script', '') → 'Java'
  - sostituisciTestuale('testo', 'x', 'y') → 'testo' (nessuna sostituzione)
- **Note**: Per sostituzioni più complesse (regex, case-insensitive), usare `String.replace()` o `String.replaceAll()`
