https://cuzeacflorin.fr/utils/case-converter
chaque ligne est convertie séparément : coller une liste ne la fusionne pas en un seul identifiant.
Utilisation #
Collez une valeur, ou une liste avec une valeur par ligne. Chaque ligne est convertie séparément dans les dix formats : coller une colonne de noms de champs ne les fusionne pas en un seul identifiant.
Les formats #
| Format | Exemple | Usage habituel |
|---|---|---|
| camelCase | creerUnElement | variables et fonctions JavaScript |
| PascalCase | CreerUnElement | composants React, classes, types |
| snake_case | creer_un_element | Python, colonnes SQL |
| kebab-case | creer-un-element | classes CSS, noms de fichiers |
| CONSTANT_CASE | CREER_UN_ELEMENT | constantes, variables d'environnement |
| Title Case | Creer Un Element | titres |
| Sentence case | Creer un element | phrases, libellés |
| slug | creer-un-element | segments d'URL |
kebab-case et slug se ressemblent mais ne font pas la même chose : le slug
traite la ponctuation comme un séparateur, la conversion de casse la
supprime. a/b devient donc a-b en slug et ab en kebab.
Le découpage est le vrai travail #
Recoller des mots est trivial. Les découper correctement est là où tout se joue, et la plupart des implémentations naïves échouent sur trois cas.
// acronyme suivi d'un mot
"HTTPServerError"; // → http, server, error (et non h, t, t, p, server…)
// chiffre accolé à une lettre
"version2Beta"; // → version, 2, beta
// accents et majuscule initiale
"Élément"; // → element (et non e, lement)Les accents ne doivent être retirés qu'après le découpage : normaliser d'abord fait perdre la majuscule initiale, et le mot devient indistinct de sa version minuscule.
Une conversion doit être idempotente #
Réappliquer une conversion à son propre résultat doit donner le même résultat.
toKebabCase("Créer un élément"); // "creer-un-element"
toKebabCase("creer-un-element"); // "creer-un-element" — identiqueSans cette propriété, un pipeline qui convertit deux fois — parce que deux couches appliquent la même normalisation « au cas où » — produit des identifiants différents à chaque passage.
Conversion des clés d'un objet #
Le cas concret le plus fréquent : une API en snake_case, un front en
camelCase.
const toCamelKeys = (value) => {
if (Array.isArray(value)) {
return value.map(toCamelKeys);
}
if (value === null || typeof value !== "object") {
return value;
}
return Object.fromEntries(
Object.entries(value).map(([key, nested]) => [
toCamelCase(key),
toCamelKeys(nested),
])
);
};Attention à la récursion : null est de type object en JavaScript, et sans le
test explicite la fonction plante sur la première valeur nulle.
sujets abordés
à lire aussi
- Expressions cronutilsDécortiquez une expression cron champ par champ et voyez ses cinq prochaines exécutions1 tag(s) en commun : texte
- Dates et horodatagesutilsConvertissez un horodatage Unix en date lisible, dans les deux sens et dans sept fuseaux horaires1 tag(s) en commun : texte
- Comparateur de textesutilsComparez deux textes ligne à ligne et repérez d'un coup d'œil les ajouts et les suppressions1 tag(s) en commun : texte