Skip to main content

Collez un texte et récupérez-le dans toutes les conventions de nommage courantes, ainsi qu'en slug d'URL.

Saisissez ou collez du texte pour le convertir.

Quand utiliser chaque casse

Les conventions de nommage consistent surtout à s'aligner sur le langage utilisé. JavaScript et Java emploient camelCase pour les variables et PascalCase pour les classes et composants. Python et Rust utilisent snake_case pour les variables et fonctions. Les classes CSS, noms de fichiers et URL utilisent kebab-case. CONSTANT_CASE signale les valeurs constantes.

Le slug d'URL va plus loin que le kebab-case : il supprime aussi les accents et la ponctuation, si bien que « Zażółć gęślą jaźń ! » devient un segment d'adresse propre et sûr. C'est donc le bon choix pour les URL de pages, les noms de fichiers et les ancres.

Mettre straße en majuscules allonge la chaîne, et la repasser en minuscules donne un autre mot

Changer la casse ressemble à un échange caractère par caractère. Ce n'en est pas un. Le ß allemand devient SS en majuscules : un mot de six caractères en fait sept — et repasser le résultat en minuscules donne strasse, qui n'est pas le mot de départ. La conversion de casse peut changer la longueur, n'est pas réversible et dépend de la langue du lecteur.

Comment ça marche

  • Convertit entre majuscules, minuscules, casse de titre, casse de phrase et styles camel, snake et kebab.
  • Utilise une conversion sensible à la locale, car le résultat correct diffère selon la langue.
  • Gère les caractères dont le changement de casse modifie la longueur de la chaîne.
majuscules et minuscules ne sont PAS des opérations inverses

straße → STRASSE → strasse     (6 → 7 → 7 caractères)

la locale compte :
  "I".toLowerCase()      → "i"
  locale turque           → "ı"  (U+0131, sans point)

Exemple chiffré

Deux cas où la conversion naïve est fausse.

  1. straße compte 6 caractères
  2. en majuscules → STRASSE, 7 caractères
  3. de nouveau en minuscules → strasse, toujours 7 et ce n'est plus le mot d'origine
  4. "I" en minuscules en anglais → "i"
  5. "I" en minuscules en turc → "ı", un caractère entièrement différent

La longueur a changé, l'aller-retour a perdu de l'information, et la bonne réponse pour l'une des entrées dépend de qui la lit. Tout code supposant que la conversion de casse est une correspondance biunivoque réversible se trompe sur les deux points.

Lire le résultat

  • Ne repliez jamais la casse pour comparer avec le seul toUpperCase ou toLowerCase. Unicode définit une opération de case folding précisément pour cela ; employer une conversion destinée à l'affichage pour comparer des identifiants crée des divergences qui n'apparaissent que dans certaines langues.
  • Le i turc avec et sans point est le bug de locale classique. Un I ASCII passé en minuscules dans une locale turque donne ı : une comparaison insensible à la casse de noms de fichiers, de commandes ou d'utilisateurs échoue donc silencieusement pour les utilisateurs turcs et pour personne d'autre.
  • La casse de titre n'est pas une opération Unicode mais une convention éditoriale, et elle varie selon les guides de style et selon les langues. L'allemand capitalise tous les noms communs ; les guides anglais se contredisent sur les prépositions courtes. Aucun réglage de bibliothèque ne rend cela correct partout.
  • Les styles de nommage en programmation portent leurs propres dangers. Convertir en camelCase puis revenir via snake_case est destructif dès que des sigles entrent en jeu : parseHTTPResponse et parseHttpResponse donnent la même forme snake et ne peuvent plus être distingués au retour.

Questions fréquentes

Pourquoi mon texte s'est-il allongé après passage en majuscules ?
Parce que certains caractères se développent. Le ß allemand devient SS, et plusieurs ligatures se décomposent de même. Toute mise en page, colonne de base de données ou règle de validation supposant que la conversion préserve la longueur finira par casser sur des données réelles.
Comment comparer deux chaînes sans tenir compte de la casse ?
Employez le case folding plutôt que la mise en majuscules ou en minuscules, et précisez la locale quand un contexte linguistique existe. La mise en minuscules naïve est correcte pour l'ASCII et donne de mauvaises réponses en turc, en allemand et dans plusieurs autres langues.