Inserire testo in una posizione esatta
Inserisca «beautiful » alla posizione 6 di «Hello world» e otterrà «Hello beautiful world», lungo 21 caratteri. Nulla viene sovrascritto, la posizione 0 è l'inizio e un emoji conta come una sola posizione. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hello world
- Testo da inserire
- beautiful
- Posizione
- 6
- Risultato
- Hello beautiful world
- Lunghezza originale
- 11
- Lunghezza inserita
- 10
- Lunghezza del risultato
- 21
Inserire testo in una posizione aggiunge una stringa esattamente nel punto indicato all’interno di un testo esistente. Fornisca il testo originale, il contenuto da aggiungere e una posizione di carattere con indice iniziale zero; il risultato conserva ogni carattere originale e colloca il nuovo contenuto tra i caratteri ai lati dell’indice. È utile per creare modelli, aggiungere etichette o separatori, correggere contenuti generati ed eseguire modifiche precise in flussi ripetibili. I caratteri Unicode vengono contati in modo coerente, quindi emoji e altri caratteri esterni all’alfabeto latino di base non occupano inaspettatamente due posizioni.
Scelga il punto esatto di inserimento
Le posizioni iniziano da zero: la posizione 0 inserisce prima del primo carattere. La posizione 1 inserisce dopo il primo e prima del secondo, mentre una posizione uguale alla lunghezza originale aggiunge la stringa alla fine. In Hello world, lo spazio è alla posizione 5 e la lettera w alla posizione 6.
Inserendo beautiful alla posizione 6 si ottiene Hello beautiful world. Nulla viene sovrascritto: l’operazione divide l’originale nel confine richiesto, colloca l’inserimento tra le due parti e le riunisce. La regola rende il risultato prevedibile negli script e negli editor visivi.
L’intervallo consentito include entrambi gli estremi, da zero alla lunghezza in caratteri. Una posizione negativa o successiva al confine finale viene rifiutata, non corretta silenziosamente, evitando modifiche nel punto sbagliato. La risposta riporta la posizione applicata e le lunghezze originale, inserita e risultante, così un flusso automatizzato può verificare il cambiamento.
Gestisca in sicurezza il testo Unicode
Questa capacità conta i punti di codice Unicode, non le unità UTF-16 di JavaScript. La distinzione è importante quando il testo contiene emoji, scritture storiche o simboli meno comuni. Un emoji può occupare due unità UTF-16 interne, ma qui viene trattato come una posizione; l’inserimento non ne divide quindi la coppia surrogata e non crea testo danneggiato.
La stessa regola vale per le lunghezze restituite. Segni combinanti e sequenze emoji complesse possono contenere più punti di codice anche quando il carattere tipografico li mostra come un solo gruppo visivo: è una proprietà di Unicode. Se le posizioni provengono da un altro sistema, verifichi che anch’esso conti i punti di codice.
Offset in byte, indici UTF-16 e indici dei grafemi sono coordinate differenti. Rendere esplicita la convenzione evita lievi spostamenti quando i modelli passano tra browser, database e servizi backend e assicura trasformazioni ripetute identiche in ogni ambiente.
Crei modelli e flussi di modifica precisi
L’inserimento esatto diventa potente quando viene composto con altri passaggi. Un flusso documentale può inserire il nome di un account dopo un saluto fisso, aggiungere un identificatore prima dell’estensione di un file o collocare una clausola generata in un confine trovato da un analizzatore. Il testo esistente rimane intatto: diversamente dalla sostituzione, non esiste un termine da cercare né un intervallo da rimuovere.
Usi questa funzione quando il flusso conosce già il confine corretto. Se il contenuto precedente può cambiare, convalidi il confine, perché ogni carattere aggiunto o eliminato prima di esso sposta la posizione. Nei modelli riutilizzabili, marcatori stabili sono spesso più gestibili degli offset fissi; trovi il marcatore e ne invii l’indice.
Una stringa di inserimento vuota è accettata come operazione intenzionalmente neutra e semplifica i flussi condizionali. La funzione è deterministica e non usa rete, casualità o ora corrente: input uguali producono sempre output uguali.
Casi d'uso
Completi un modello di testo
Inserisca un nome cliente, un riferimento o una frase generata in un confine noto, preservando esattamente il modello circostante.
Aggiunga un suffisso al file
Collochi una versione o un indicatore linguistico subito prima dell’estensione dopo che un altro passaggio ne determina la posizione.
Applichi modifiche precise
Aggiunga punteggiatura, annotazioni, separatori o parole mancanti al contenuto generato senza cercare e sostituire testo esistente.
Domande frequenti
La posizione parte da zero o da uno?
Parte da zero. La posizione 0 inserisce prima del primo carattere e la lunghezza originale aggiunge alla fine.
L’inserimento sostituisce testo esistente?
No. Tutti i caratteri originali restano intatti e la stringa scelta viene aggiunta nel confine richiesto.
Come vengono conteggiati gli emoji?
Posizioni e lunghezze usano punti di codice Unicode: un emoji supplementare conta come un punto, non come due unità UTF-16. Simboli complessi possono contenerne più di uno.
Posso inserire all’inizio o alla fine?
Sì. Usi la posizione 0 per anteporre il testo o la lunghezza originale per aggiungerlo alla fine.
Che cosa succede se la posizione supera la fine del testo?
L'inserimento viene rifiutato invece di essere spostato in silenzio, così una modifica non finisce mai nel punto sbagliato. Le posizioni valide vanno da 0 alla lunghezza del testo, e la lunghezza stessa aggiunge in fondo.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/str/insert-at-position \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello world","insert_text":"beautiful ","position":6}'const res = await fetch("https://api.kit.forhosting.com/str/insert-at-position", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello world",
"insert_text": "beautiful ",
"position": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/insert-at-position",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello world",
"insert_text": "beautiful ",
"position": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/insert-at-position", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello world","insert_text":"beautiful ","position":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello world","insert_text":"beautiful ","position":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/insert-at-position", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "Hello world",
"insert_text": "beautiful ",
"position": 6
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.insert_at_position",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Crei modelli e flussi di modifica precisi
L’automazione API costa $0.002 per richiesta.
Domande tecniche
Cosa accade se la posizione non è valida?
Una posizione negativa, frazionaria o fuori intervallo restituisce un errore invalid_input senza modificare né limitare il valore.