Mettez la première lettre d’un texte en minuscule
Transformez une majuscule initiale en minuscule sans toucher au reste du texte. Cet outil ciblé est utile lorsqu’un nom de classe doit devenir une variable camelCase, lorsqu’un titre doit s’intégrer au milieu d’une phrase ou lorsqu’un texte généré nécessite une seule correction de casse.
Lancer gratuitement
Il traite le premier caractère Unicode et préserve exactement tous les caractères suivants, notamment leurs majuscules, les espaces, la ponctuation et les sauts de ligne. L’opération est déterministe, s’exécute dans le navigateur sans accès au réseau et reste disponible par API pour les traitements automatisés.
Modifiez uniquement le caractère initial
Collez ou envoyez le texte à ajuster. L’outil lit son premier caractère Unicode, lui applique la conversion standard en minuscule, puis le rattache à la suite laissée intacte. Ainsi, HelloWorld devient helloWorld, tandis que le W majuscule reste exactement tel qu’il a été fourni. Ce comportement limité est essentiel lorsque vous ne souhaitez ni une casse de titre, ni une casse de phrase, ni une conversion complète en minuscules. Ces opérations plus larges risquent de supprimer des majuscules voulues dans les noms de produits, les sigles, les identifiants et le code. Si le caractère initial est déjà en minuscule, s’il s’agit d’un chiffre, d’une espace ou d’un signe de ponctuation, le texte visible reste généralement identique. L’outil ne supprime pas les espaces périphériques, ne normalise pas les blancs, n’efface pas la ponctuation et ne réinterprète pas les mots. Une espace initiale reste donc en place et le caractère suivant ne la remplace pas comme premier caractère. Le résultat demeure ainsi prévisible pour les modèles et programmes sensibles aux positions exactes.
Employez-le pour les identifiants et fragments générés
Un cas fréquent consiste à convertir une étiquette PascalCase afin d’obtenir la première étape d’un identifiant camelCase. Un générateur peut produire CustomerRecord depuis un schéma ou un nom de type, alors qu’une application attend customerRecord pour une variable ou une propriété. La modification du seul caractère initial conserve toutes les frontières suivantes : les majuscules internes continuent donc de représenter la structure des mots d’origine. La même règle convient au langage généré. Un fragment réutilisable peut être enregistré sous la forme Your account is ready parce qu’il peut être autonome, mais un modèle peut l’insérer après une proposition introductive et exiger your account is ready. Cette capacité effectue cette retouche précise sans réécrire le fragment. Elle ne corrige pas la grammaire et ne cherche pas à reconnaître les noms propres. Vous décidez du contexte dans lequel la transformation est pertinente. Pour un traitement par lots, effectuez un appel par élément et conservez l’entrée originale si une piste d’audit ou un retour en arrière est nécessaire.
Comprenez Unicode et la préservation exacte
Une chaîne JavaScript peut commencer par un caractère représenté par plusieurs unités de code UTF-16. L’implémentation lit donc le premier point de code Unicode complet au lieu de prélever aveuglément une seule unité. Elle évite ainsi de scinder les caractères supplémentaires, notamment de nombreux symboles et des lettres d’écritures historiques. La règle Unicode standard de passage en minuscule s’applique uniquement à ce premier point de code. Dans quelques écritures, une correspondance en minuscule peut contenir plusieurs points de code ; le résultat suit alors la correspondance standard de l’environnement, tandis que la suite originale commence toujours à la bonne limite. Aucune langue n’est déduite du contenu et aucune réécriture propre à une région n’est tentée. Ce choix est volontaire : deviner la langue rendrait une opération simple imprévisible et pourrait modifier le résultat d’une même requête. La suite provient directement de la chaîne originale ; majuscules internes, marques combinées, emoji, retours à la ligne, tabulations et espaces finaux sont donc conservés. Une entrée vide ou non textuelle déclenche une erreur d’entrée.
Cas d’usage
Créez des noms camelCase
Convertissez un nom PascalCase de type ou de composant en variable camelCase tout en gardant les majuscules suivantes.
Insérez un fragment dans une phrase
Adaptez une formule réutilisable commençant par une majuscule afin de la placer après une proposition sans modifier sa suite.
Normalisez les clés générées
Appliquez une règle cohérente au premier caractère des clés issues de schémas, de code ou de modèles.
Questions fréquentes
Le texte entier passe-t-il en minuscules ?
Non. La conversion ne concerne que le premier caractère Unicode ; toute la suite reste intacte.
Que se passe-t-il si le premier caractère est déjà minuscule ?
La sortie ne change pas, car la conversion en minuscule ne modifie pas ce caractère.
Les espaces et signes initiaux sont-ils ignorés ?
Non. L’opération porte sur le véritable premier caractère et conserve sa position, sans chercher une lettre plus loin.
Le texte Unicode est-il pris en charge ?
Oui. L’outil lit le premier point de code Unicode complet et applique la correspondance standard de l’environnement.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. La version pour navigateur s’exécute localement sans transmettre le texte à un serveur.
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/uncapitalize-first \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"HelloWorld"}'const res = await fetch("https://api.kit.forhosting.com/str/uncapitalize-first", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "HelloWorld"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/uncapitalize-first",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "HelloWorld"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/uncapitalize-first", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"HelloWorld"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"HelloWorld"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/uncapitalize-first", 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": "HelloWorld"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.uncapitalize_first",
"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. |