Tronquer du texte
Avec une limite de 20, The quick brown fox jumps over the lazy dog devient The quick brown f..., exactement 20 caractères points compris. Un texte qui tient déjà dans la limite revient inchangé. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- The quick brown fox jumps over the lazy dog
- Longueur
- 20
- Entrée
- The quick brown fox jumps over the lazy dog
- Texte
- The quick brown f...
- Longueur d'origine
- 43
- Longueur du résultat
- 20
Un outil de troncature de texte raccourcit une chaîne à une longueur d'affichage maximale et ajoute des points de suspension lorsque l'original ne rentre pas. Saisissez le texte brut et la longueur entière que le résultat doit respecter ; l'outil renvoie la chaîne raccourcie, l'indication de troncature, les longueurs d'origine et de résultat, ainsi qu'un bref message. Activez éventuellement le mode limite de mot pour que la coupure privilégie le dernier espace avant la limite au lieu de scinder un mot en plein milieu. Aperçus, cellules de tableau, titres de cartes, extraits SEO, bulles de chat et textes de notification exigent tous cette même règle de longueur stricte, sans ouvrir un éditeur complet ni appeler un modèle de réécriture.
Ce que signifie tronquer avec points de suspension, par rapport à réécrire ou rogner
La troncature est une contrainte d'affichage stricte : on conserve un préfixe de la chaîne source et, lorsque celle-ci dépasse la longueur autorisée, on marque l'omission par un suffixe de points de suspension. Cela diffère du rognage des espaces, qui ne nettoie que les extrémités, et du raccourcissement par IA, qui réécrit le sens en moins de mots. Ici, la longueur maximale est la longueur maximale du résultat entier, points de suspension compris lorsqu'une coupure est nécessaire.
Si votre texte tient déjà, l'outil le renvoie inchangé et fixe truncated à false afin que l'appelant puisse ignorer les éléments d'interface qui suggéreraient un contenu masqué. Les longueurs inférieures à un ne sont jamais acceptées : un aperçu de largeur nulle n'est pas un contrat utile pour les cartes, les tableaux ou les notifications, et les limites négatives sont toujours des bogues côté client.
Un texte vide avec une longueur valide est autorisé et renvoyé vide, sans points de suspension, ce qui évite que des pipelines transmettant des champs facultatifs échouent simplement parce qu'un titre est vide.
Cas d’usage
Titres de cartes et aperçus de cellules de tableau
Plafonnez les noms de produits et les lignes de liste à un budget de caractères fixe avec des points de suspension visibles, pour que les interfaces denses restent alignées sans débordement.
Tests unitaires pour formateurs d'affichage
Générez des troncatures strictes et souples de référence ainsi que des rejets de longueur inférieure à un pour les aides frontend et les pipelines d'aperçu CMS.
Questions fréquentes
La longueur inclut-elle les points de suspension ?
Oui. Lorsque la troncature s'applique, la chaîne renvoyée fait au plus length caractères, points de suspension compris. Si l'original tient déjà, il est renvoyé inchangé, sans ajout de points de suspension.
Que se passe-t-il si la longueur est nulle ou négative ?
La longueur doit être un entier d'au moins un ; les limites inférieures à un sont rejetées et jamais facturées.
Est-ce identique à un raccourcissement de texte par IA ?
Non. Cette capacité effectue une coupure de préfixe déterministe avec points de suspension. Elle ne réécrit pas le sens. Utilisez un outil LLM de raccourcissement lorsque vous avez besoin d'une paraphrase compressée plutôt qu'un plafonnement d'affichage strict.
L'outil de troncature de texte est-il gratuit ?
L'outil du navigateur est gratuit et s'exécute localement.
Peut-on éviter de couper un mot en deux ?
Oui. Activez l'option de limite de mot : la coupe recule jusqu'à la dernière espace avant la limite et le résultat se termine sur un mot entier. S'il n'y a aucune espace, le texte est coupé à la limite.
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/truncate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The quick brown fox jumps over the lazy dog","length":20}'const res = await fetch("https://api.kit.forhosting.com/str/truncate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The quick brown fox jumps over the lazy dog",
"length": 20
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/truncate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The quick brown fox jumps over the lazy dog",
"length": 20
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/truncate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The quick brown fox jumps over the lazy dog","length":20}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The quick brown fox jumps over the lazy dog","length":20}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/truncate", 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": "The quick brown fox jumps over the lazy dog",
"length": 20
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.truncate",
"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.
Limites
max_chars | 100000 |
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
Une longueur inférieure à un est rejetée avec une erreur invalid_input claire, de sorte que la validation de formulaire et l'intégration continue ne traitent jamais un plafond nul ou négatif comme un succès. Le traitement repose sur une logique de chaînes pure et déterministe — aucun réseau, aucune graine aléatoire, aucune dépendance à l'horloge —, donc l'exécuteur gratuit du navigateur et l'API prépayée renvoient le même JSON à chaque appel.
Ce que signifie tronquer avec points de suspension, par rapport à réécrire ou rogner
Sinon, le moteur calcule un budget de contenu égal à la longueur moins celle des points de suspension, prend un préfixe jusqu'à ce budget, recule éventuellement jusqu'à l'espace précédent lorsque word_boundary vaut true, supprime les espaces finaux du préfixe conservé pour que les points de suspension ne suivent pas un vide parasite, puis concatène les points de suspension.
Comment appeler l'API et ce que contient la réponse
Envoyez un corps JSON avec le champ obligatoire text (alias input, value, string, s, content et body) et le champ obligatoire length (alias max_length, max, n, limit et max_len). La longueur doit être un entier compris entre un et cent mille inclus ; les valeurs inférieures à un, les non-entiers et les limites excessives déclenchent invalid_input. Le champ facultatif word_boundary (alias word, soft, on_word) vaut false par défaut et accepte les booléens true ou false. Le champ facultatif ellipsis (alias suffix, ending, marker) vaut par défaut trois points ASCII et peut être toute chaîne d'au plus trente-deux caractères ; lorsqu'une troncature est nécessaire, les points de suspension ne doivent pas dépasser length, sinon la requête échoue au lieu d'inventer un marqueur écourté. Le texte doit rester sous cent mille caractères afin qu'une seule requête ne puisse épuiser la mémoire du Worker ou du navigateur. En cas de succès, la réponse renvoie input comme chaîne d'origine, text comme chaîne finale à afficher, length comme maximum demandé, original_length et result_length comme nombres de caractères, truncated comme booléen, word_boundary comme indicateur envoyé (ou par défaut), ellipsis comme suffixe utilisé, used_word_boundary lorsqu'une coupure souple a été appliquée, et message comme bref résumé en anglais. Une validation en échec — text ou length manquant, text non chaîne, length non entier ou inférieur à un, charge utile excessive, ou points de suspension incompatibles avec la limite lorsqu'une coupure est requise — renvoie invalid_input et n'est jamais facturée. La tarification est forfaitaire : $0.002 par requête réussie, avec unité item et prix marginal nul.
Conseils pratiques, limites et recherches associées
Utilisez cette capacité lorsque l'intention de recherche est tronquer un texte, ajouter des points de suspension à une longueur maximale ou couper en douceur sur une limite de mot en ligne. Des points de suspension personnalisés, comme le caractère Unicode unique de points de suspension horizontaux ou un libellé « plus » entre crochets, fonctionnent tant que leur longueur reste dans le budget. Cette page n'est ni un résumeur IA, ni un compteur de paragraphes ou de mots, ni un convertisseur de casse de titre, ni un simple rogneur de bords de ligne. Les vérifications aller-retour pour les tests sont simples : fournissez une longue phrase avec une longueur de vingt et attendez-vous à truncated true et un result_length d'au plus vingt ; activez word_boundary sur une phrase de plusieurs mots et vérifiez que le dernier caractère conservé ne se trouve pas à l'intérieur d'un mot lorsqu'un espace existait plus tôt ; envoyez une longueur nulle ou un entier négatif et attendez-vous à invalid_input mentionnant une longueur inférieure à un. Préférez une coupure franche lorsque vous avez besoin d'une grille de caractères fixe, comme des journaux à chasse fixe ; préférez word_boundary pour les titres et aperçus destinés aux humains, où les coupures en plein mot paraissent défectueuses. Préférez text.shorten lorsqu'il vous faut une compression préservant le sens sous un budget de mots avec un modèle de langage ; préférez str.trim_lines lorsqu'il vous faut seulement nettoyer les espaces par ligne ; préférez cette capacité lorsque le produit a déjà décidé d'une longueur d'affichage maximale stricte et doit montrer un préfixe fidèle. Les tâches en échec qui renvoient invalid_input ne consomment pas de solde prépayé, ce qui maintient la validation de formulaires et les tests négatifs d'intégration continue à bas coût. Pour former des relecteurs, montrez la même phrase en modes strict et souple afin qu'ils voient que seules la position de coupure et l'indicateur used_word_boundary changent, tandis que la règle des points de suspension reste identique.
Cas d'intégration
Limites d'extraits pour notifications et chat
Raccourcissez les notifications push et les messages internes aux plafonds de longueur des plateformes, en évitant éventuellement les coupures en plein mot grâce au mode word_boundary.
Questions techniques
À quoi sert word_boundary ?
Lorsqu'il vaut true, la coupure privilégie le dernier espace avant le budget de contenu afin de ne pas scinder les mots. Sans espace convenable, l'outil revient à une coupure franche au caractère.