---
name: taglia-testuale
description: Usare quando l'utente deve truncare una stringa a un numero massimo di caratteri.
---

# Taglia Testuale

Questa skill taglia una stringa a un numero massimo di caratteri specificato. Utile per truncare testo per visualizzazioni, anteprime di contenuti lunghi, gestire overflow di testo, formattare stringhe per UI.

## Procedura

1. **Tagliare il testo**: Usare `tagliaTestuale(testo, max)`
2. **Passare i parametri**: testo (stringa) e max (numero di caratteri)
3. **Gestire il risultato**: Restituisce la stringa tagliata o originale

## Regole

- `testo` deve essere una stringa
- `max` deve essere un numero intero positivo
- Restituisce stringa vuota se il parametro non è una stringa
- Restituisce stringa vuota se max <= 0
- Se la stringa è più corta di max, restituisce la stringa originale
- **Non aggiunge ellissi** automaticamente (solo taglia)

## Esempi

### Esempio 1: Tagliare a 5 caratteri

```javascript
const tagliato = tagliaTestuale('ciao mondo', 5);
console.log(tagliato); // 'ciao'
```

### Esempio 2: Tagliare con testo più corto di max

```javascript
const tagliato = tagliaTestuale('ciao', 10);
console.log(tagliato); // 'ciao' (nessun taglio)
```

### Esempio 3: Tagliare con ellissi

```javascript
function tagliaConEllissi(testo, max) {
    const tagliato = tagliaTestuale(testo, max);
    return tagliato.length < testo.length ? tagliato + '...' : tagliato;
}
console.log(tagliaConEllissi('Questa è una frase lunga', 10)); // 'Questa è...'
```

### Esempio 4: Tagliare a 0 caratteri

```javascript
const tagliato = tagliaTestuale('testo', 0);
console.log(tagliato); // ''
```

### Esempio 5: Tagliare stringa vuota

```javascript
const tagliato = tagliaTestuale('', 10);
console.log(tagliato); // ''
```

## Dettagli Aggiuntivi

- **Implementazione**: Usa `String.slice(0, max)`
- **slice()**: Estrae i primi max caratteri della stringa
- **Comportamento**:
  - Se testo.length <= max: restituisce testo
  - Se max <= 0: restituisce stringa vuota
  - Altrimenti: restituisce testo.slice(0, max)
- **Efficienza**: O(1) - tempo costante (slice è ottimizzato)
- **Esempi**:
  - tagliaTestuale('ciao mondo', 5) → 'ciao'
  - tagliaTestuale('ciao', 10) → 'ciao'
  - tagliaTestuale('ciao mondo', 0) → ''
- **Note**: Per aggiungere ellissi o altri indicatori, applicare dopo il taglio
