Insérer du texte à une position exacte
Insérez « beautiful » à la position 6 de « Hello world » et vous obtenez « Hello beautiful world », long de 21 caractères. Rien n'est écrasé, la position 0 désigne le tout début et un emoji compte pour une seule position. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Hello world
- Texte à insérer
- beautiful
- Position
- 6
- Résultat
- Hello beautiful world
- Longueur d'origine
- 11
- Longueur insérée
- 10
- Longueur du résultat
- 21
Insérer du texte à une position ajoute une chaîne exactement à l’endroit que vous indiquez dans un contenu existant. Fournissez le texte d’origine, le contenu à ajouter et une position de caractère commençant à zéro ; le résultat conserve chaque caractère d’origine et place le nouveau contenu entre les caractères qui entourent cet indice. Cet outil convient aux modèles, aux libellés, aux séparateurs, aux corrections de contenu généré et aux modifications précises dans des processus reproductibles. Le comptage Unicode est cohérent : les emojis et les caractères hors de l’alphabet latin élémentaire n’occupent pas deux positions de façon inattendue.
Choisissez le point d’insertion exact
Les positions commencent à zéro : la position 0 insère avant le premier caractère. La position 1 insère après le premier et avant le deuxième, tandis qu’une position égale à la longueur d’origine ajoute la chaîne à la fin. Dans Hello world, l’espace est à la position 5 et la lettre w à la position 6.
L’insertion de beautiful à la position 6 produit Hello beautiful world. Aucun contenu n’est écrasé : l’opération coupe le texte à la limite demandée, place l’ajout entre les deux parties, puis les réunit. Cette règle rend le résultat prévisible dans les scripts et éditeurs.
L’intervalle autorisé comprend les deux extrémités, de zéro à la longueur en caractères. Une position négative ou supérieure à la limite finale est rejetée plutôt que corrigée silencieusement. La réponse rappelle la position appliquée et fournit les longueurs d’origine, ajoutée et finale afin que votre automatisation puisse contrôler la modification.
Traitez le texte Unicode en toute sécurité
Cette capacité compte les points de code Unicode et non les unités UTF-16 de JavaScript. La différence est importante pour les emojis, les écritures historiques et certains symboles. La même règle s’applique aux longueurs renvoyées.
Les signes combinatoires et les séquences complexes d’emojis peuvent néanmoins contenir plusieurs points de code même si une police les affiche comme un seul groupe visuel ; cela relève d’Unicode. Si vos positions proviennent d’un autre système, vérifiez qu’il compte également les points de code. Les offsets en octets, les indices UTF-16 et les indices de graphèmes constituent des coordonnées différentes.
Une convention explicite évite les décalages subtils lorsque les modèles circulent entre navigateur, base de données et backend, et garantit des transformations identiques dans chaque environnement.
Créez des modèles et des processus d’édition précis
L’insertion exacte devient particulièrement utile lorsqu’elle est combinée à d’autres étapes. Un processus documentaire peut placer un nom de compte après une formule fixe, ajouter un identifiant avant une extension de fichier ou insérer une clause à une limite trouvée par un analyseur. Le texte existant reste intact : contrairement au remplacement, aucun terme n’est recherché et aucune plage n’est supprimée.
Utilisez cette opération lorsque votre processus connaît déjà la bonne limite. Si le contenu en amont peut changer, contrôlez cette limite, car tout caractère ajouté ou retiré avant elle décale la position. Pour les modèles réutilisables, des marqueurs stables sont souvent plus faciles à maintenir que des offsets fixes ; localisez d’abord le marqueur, puis transmettez son indice.
Une chaîne à insérer vide constitue volontairement une opération sans effet, pratique dans les processus conditionnels. La fonction est déterministe, sans réseau, hasard ni heure courante : des entrées identiques produisent toujours la même sortie.
Cas d’usage
Compléter un modèle de texte
Insérez un nom de client, une référence ou une expression générée à une limite connue tout en préservant exactement le modèle environnant.
Ajouter un suffixe de fichier
Placez une version ou un indicateur de langue juste avant l’extension après qu’une autre étape a déterminé sa position.
Effectuer des modifications précises
Ajoutez ponctuation, annotations, séparateurs ou mots manquants à un contenu généré sans rechercher ni remplacer le texte existant.
Questions fréquentes
La position commence-t-elle à zéro ou à un ?
Elle commence à zéro. La position 0 insère avant le premier caractère et la longueur d’origine ajoute à la fin.
L’insertion remplace-t-elle du texte existant ?
Non. Tous les caractères d’origine sont conservés et la chaîne choisie est ajoutée à la limite demandée.
Comment les emojis sont-ils comptés ?
Les positions et longueurs utilisent les points de code Unicode : un emoji supplémentaire compte pour un point, et non deux unités UTF-16. Un symbole complexe peut contenir plusieurs points.
Puis-je insérer au début ou à la fin ?
Oui. Utilisez la position 0 pour ajouter au début ou la longueur d’origine pour ajouter à la fin.
Que se passe-t-il si la position dépasse la fin du texte ?
L'insertion est refusée au lieu d'être déplacée sans prévenir, si bien qu'une modification ne tombe jamais au mauvais endroit. Les positions valides vont de 0 à la longueur du texte, et la longueur elle-même ajoute à la fin.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"text": "Hello world",
"insert_text": "beautiful ",
"position": 6
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.insert_at_position",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Traitez le texte Unicode en toute sécurité
Un emoji peut occuper deux unités UTF-16 internes, mais il compte ici comme une position : l’insertion ne peut donc pas couper sa paire de substitution et produire un texte endommagé.
Créez des modèles et des processus d’édition précis
L’API coûte $0.002 par requête.
Questions techniques
Que se passe-t-il si la position est invalide ?
Une position négative, fractionnaire ou hors limites renvoie une erreur invalid_input sans modifier ni borner la valeur.